css样式设计思路总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css样式设计思路总结相关的知识,希望对你有一定的参考价值。
参考技术A 如何清除图片下方出现几像素的空白间隙?方法1:
方法2:
除了top值,还可以设置为text-top | middle | bottom | text-bottom
甚至特定的<length>和<percentage>值都可以
方法3:
如何让文本垂直对齐文本输入框?
如何让单行文本在容器内垂直居中?
如何让超链接访问后和访问前的颜色不同且访问后仍保留hover和active效果?
按L-V-H-A的顺序设置超链接样式即可,可速记为LoVe(喜欢)HAte(讨厌)
为什么Standard mode下IE无法设置滚动条的颜色?
将原来设置在body上的滚动条颜色样式定义到html标签选择符上即可
如何使文本溢出边界不换行强制在一行内显示?
设置容器的宽度和white-space为nowrap即可,其效果类似<nobr>标签
如何使文本溢出边界显示为省略号?
方法(此方法Firefox5.0尚不支持):
如何使连续的长字符串自动换行?
word-wrap的break-word值允许单词内换行
如何清除浮动?
方法1:
方法2:
方法3:
如何定义鼠标指针的光标形状为手型并兼容所有浏览器?
若将cursor设置为hand,将只有IE和Opera支持,且hand为非标准属性值
如何让已知高度的容器在页面中水平垂直居中?
Know More:已知高度的容器如何在页面中水平垂直居中
如何让未知尺寸的图片在已知宽高的容器内水平垂直居中?
如何设置span的宽度和高度(即如何设置内联元素的宽高)?
如何给一个元素定义多个不同的css规则?
如何让某个元素充满整个页面?
如何让某个元素距离窗口上右下左4边各10像素?
如何去掉超链接的虚线框?
IE7及更早浏览器由于不支持outline属性,需要通过js的blur()方法来实现,如<a onfocus="this.blur();"...
如何容器透明,内容不透明?
原理是容器层与内容层并级,容器层设置透明度,内容层通过负margin或者position绝对定位等方式覆盖到容器层上
方法2:
高级浏览器直接使用rgba颜色值实现;IE浏览器在定义容器透明的同时,让子节点相对定位,也可达到效果
如何让整个页面水平居中?
定义body的text-align值为center将使得IE5.5也能实现居中
为什么容器的背景色没显示出来?为什么容器无法自适应内容高度?
通常出现这样的情况都是由于没有清除浮动而引起的
如何做1像素细边框的table?
方法1:
方法2:
IE7及更早浏览器不支持border-spacing属性,但是可以通过table的标签属性cellspacing来替代。
如何使页面文本行距始终保持为n倍字体大小的基调?
注意,不要给n加单位
标准模式Standard mode和怪异模式Quirks mode下的盒模型区别?
标准模式下:Element width = width + padding + border
怪异模式下:Element width = width
以图换字的几种方法及优劣分析
思路1:使用text-indent的负值,将内容移出容器
该方法优点在于结构简洁,不理想的地方:
1.由于使用场景不同,负缩进的值可能会不一样,不易抽象成公用样式;
2.当该元素为链接时,在非IE下虚线框将变得不完整;
3.如果该元素被定义为内联级或者内联块级,不同浏览器下会有较多的差异
思路2:使用display:none或visibility:hidden将内容隐藏;
该方法优点在于兼容性强并且容易抽象成公用样式,缺点在于结构较复杂
思路3:使用padding或者line-height将内容挤出容器之外;
该方法优点在于结构简洁,缺点在于:
1.由于使用场景不同,padding或line-height的值可能会不一样,不易抽象成公用样式;
2.要兼容IE5.5及更早浏览器还得hack
思路4:使用超小字体和文本全透明法;
该方法结构简单易用,推荐使用
为什么2个相邻div的margin只有1个生效?
本例中box1的底部margin为10px,box2的顶部margin为20px,但表现在页面上2者之间的间隔为20px,而不是预想中的10+20px=30px,结果是选择2者之间最大的那个margin,我们把这种机制称之为“外边距合并”;外边距合并不仅仅出现在相邻的元素间,父子间同样会出现。
简单列举几点注意事项:
外边距合并只出现在块级元素上;
浮动元素不会和相邻的元素产生外边距合并;
绝对定位元素不会和相邻的元素产生外边距合并;
内联块级元素间不会产生外边距合并;
根元素间不会不会产生外边距合并(如html与body间);
设置了属性overflow且值不为visible的块级元素不会与它的子元素发生外边距合并;
如何在文本框中禁用中文输入法?
ime-mode为非标准属性,写该文档时只有IE和Firefox支持
如何解决列表中list-style-image不能精准定位的问题?
不使用list-style-image来定义列表项目标记符号,而用background-image来代替,
并通过background-position来进行定位
如何解决伪对象:before和:after在input标签上的怪异表现的问题?
现象:
在编写本条目时,除了Opera,在所有浏览器下input标签使用伪对象:before和:after都没有效果,即使Opera的表现也同样令人诧异。大家可以试玩一下。浏览器版本:IE6-IE10, Firefox6.0, Chrome13.0, Safari5.1, Opera11.51
除了Firefox,在所有浏览器下伪对象:before和:after无法定义过渡和动画效果。
如果这个过渡或动画效果是必须,可以考虑使用真实对象。
Java学习总结(二十四)——前端:CSS样式设计(CSS引入,选择器,盒子模型,浮动元素)
一.CSS引入方式
1.CSS简介:
(1)CSS(Cascading style Sheets):层叠样式表。用来给html网页设置样式;
(2)当多个选择器对同一个元素进行样式设计时,则该元素的样式为多个选择器叠加的效果(当有冲突时,按照优先级设置);
2.引入方式:
(1)方式一:行内样式(在html元素的style属性上设置样式)
(2)方式二:页面内嵌样式(在head标签内部嵌入样式)
(3)方式三:引入外部样式文件
例1(演示CSS三种引入方式):
Html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CSS引入</title>
<!--方式二:页面内嵌样式-->
<style type="text/css">
#hehe{
width: 200px;
height: 200px;
background-color: yellow;
}
</style>
<!--方式三:引入外部样式文件-->
<link rel="stylesheet" type="text/css" href="css/index.css"/>
</head>
<body>
<!--方式一:行内样式:-->
<div style="background-color: green; width: 400px;height: 400px;">
<div id="haha">
<div id="hehe">
<div style="background-color: red; width: 120px;height: 120px;"></div>
</div>
</div>
</div>
</body>
</html>
CSS代码:
#haha{
width: 300px;
height: 300px;
background-color: blue;
}
运行结果:
二.CSS选择器:
1.标签选择器
2.类选择器
3.ID选择器:
4.复合选择器:
5.子选择器(选择父选择器的直接子元素):
6.后代选择器:
7.伪类选择器(用来设置元素在不同状态下的样式)
例2(选择器的使用):
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#daohang{
width: 100%;
height: 73px;
border: 0px solid #EAEAEA;
}
#logo1{
width: 332px;
height: 72px;
border: 0px solid #EAEAEA;
float: left;
}
#logotu{
width: 180px;
height: 37px;
margin-left: 78px;
margin-top: 16px;
background-image: url(一键杀毒_盗号保护_垃圾清理_软件管理-腾讯电脑管家官网_files/logo_2.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
#shouye{
height: 72px;
border: 0.25px solid #EAEAEA;
float: left;
width:70px ;
font-family: "微软雅黑";
font-size: 20px;
text-align: center;
line-height: 72px;
color: #9D9D9D;
border-top-style:none ;
border-right-style:none ;
}
.dropdown {
width: 121px;
height: 72px;
border: 0.25px solid #EAEAEA;
float: left;
position: relative;
display: inline-block;
text-align: center;
line-height: 72px;
border-top-style:none ;
border-right-style:none ;
}
.dropdown-content{
display: none;
position: absolute;
background-color: #FFFFFF;
width: 120px;
line-height: 27px;
z-index: 1;
}
.dropdown:hover .dropdown-content {
display: block;
}
.banben{
width: 70px;
height: 72px;
float: left;
}
#login{
width: 80px;
height: 60px;
float: left;
margin-left: 60px;
margin-top: 7px;
}
a{
text-decoration: none;
font-size: 17px;
color: #333333;
font-family: "微软雅黑";
font-size: 20px;
}
a:hover{
color: #2871D5;
}
#xialaxiang{
font-size: 14px;
}
#tu{
width: 50px;
height: 50px;
margin-left: 10px;
margin-top: 10px;
background: url(一键杀毒_盗号保护_垃圾清理_软件管理-腾讯电脑管家官网_files/09ec6123b95bae5a3d11c507bc84910e.png);%
background-repeat: no-repeat;
background-size: 100% 100%;
}
#maintu{
width: 100%;
height: 442px;
background: url(一键杀毒_盗号保护_垃圾清理_软件管理-腾讯电脑管家官网_files/9fc5cc01281fdf183798ea0239533980.jpg);
background-repeat: no-repeat;
background-size: 100% 100%;
}
</style>
</head>
<body>
<div id="daohang">
<div id="logo1">
<div id="logotu"></div>
</div>
<div id="shouye" ><a href="index.html" style="text-decoration: none;">首页</a></div>
<div class="dropdown">
<span class="dropbtn"style="line-height: 70px;"><a href="#" target="_blank">产品介绍</a></span>
<div class="dropdown-content">
<a href="#" id="xialaxiang">安全防护</a><br />
<a href="#" id="xialaxiang">管理效率</a><br />
<a href="#" id="xialaxiang">电脑加速</a><br />
<a href="#" id="xialaxiang">游戏加速</a><br />
<a href="#" id="xialaxiang">等级加速</a><br />
<a href="#" id="xialaxiang">电脑加速</a><br />
<a href="#" id="xialaxiang">账号保护</a><br />
<a href="#" id="xialaxiang">手游助手</a><br />
<a href="#" id="xialaxiang">桌面管理</a><br />
<a href="#" id="xialaxiang">最近文档</a><br />
</div>
</div>
<div class="dropdown">
<span class="dropbtn"style="line-height: 70px;"><a href="#" target="_blank">安全咨询</a></span>
<div class="dropdown-content">
<a href="#" id="xialaxiang">安全专题</a><br />
<a href="#" id="xialaxiang">管家大事记</a><br />
<a href="#" id="xialaxiang">联合实验室</a><br />
</div>
</div>
<div class="dropdown">
<span class="dropbtn"style="line-height: 70px;"><a href="#" target="_blank">在线安全</a></span>
<div class="dropdown-content">
<a href="#" id="xialaxiang">电脑诊所</a><br />
<a href="#" id="xialaxiang">申诉举报</a><br />
<a href="#" id="xialaxiang">诈骗信息查询</a><br />
<a href="#" id="xialaxiang">网站安全检测</a><br />
<a href="#" id="xialaxiang">密码安全检测</a><br />
<a href="#" id="xialaxiang">账号安全查询</a><br />
</div>
</div>
<div class="dropdown" style="border-right:0.25px solid #EAEAEA">
<span class="dropbtn"style="line-height: 70px;"><a href="#" target="_blank">活动中心</a></span>
<div class="dropdown-content">
<a href="#" id="xialaxiang">兑换礼包</a><br />
<a href="#" id="xialaxiang">赚安全金币</a><br />
<a href="#" id="xialaxiang">专题活动</a><br />
</div>
</div>
<div class="banben" style="margin-left: 50px;"><div id="tu"></div></div>
<div class="banben"><div id="tu"></div></div>
<div class="banben"><div id="tu"></div></div>
<div id="login" style="line-height: 60px; text-align: center;"><a href="ligin.html" target="_blank" style="font-size: 15px;color: #2771FA;">登录</a></div>
<div style="clear: both;">
<!--清除上面的浮动-->
</div>
<div id="maintu">
</div>
</div>
</body>
</html>
运行结果:
试用下拉菜单:
三.CSS盒子模型(BOX模型)
1.基本组成
(1)border(边框)?
(2)padding(内边距,也叫填充):元素中的内容与边框(border)之间的距离。
(3)margin(外边距):与相邻元素或父元素之间的距离。
(4)content(内容):盒子包含的内容(皇宫)。
2.图例:
例3(盒子模型举例):
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>盒子模型</title>
<style type="text/css">
#div1{width: 400px; height: 400px;background-color: aqua;}
#div2{width: 200px;height: 200px; background-color: blueviolet;margin-left: 98px;margin-top: 98px;}
#div3{width: 120px;height: 120px; background-color:coral;margin-left: 38px;margin-top: 28px;}
</style>
</head>
<body>
<div id="div1">皇城
<div id="div2">皇宫
<div id="div3">皇帝</div>
</div>
</div>
</body>
</html>
运行结果:
例4(盒子模型属性的使用):
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<style type="text/css">
#wai{
width: 400px;
height: 400px;
border: 20px solid yellowgreen;
/*设置外层为一个盒子*/
display: flex;
/*盒子里面元素的排列顺
flex-direction:
row row-reverse
column column-reverse
* */
flex-direction: row;
/*justify-content:
* flex-start | 靠左端
* flex-end | 靠右端
* center;按方向居开始 中间 末尾 */
/*
* 盒子里面元素的对齐方式
*/
justify-content: center;
/*flex-flow: row wrap;*/
flex-wrap: wrap;
}
#wai>div{
/*让盒子内的元素 均匀排列 把 margin: auto;*/
margin: auto auto;
/*margin-left: 10px;*/
width: 50px;
height: 50px;
border: 5px yellow solid;
}
</style>
<body>
<div id="wai">
<div style="order: 1;">1</div>
<div style="order: 2;">2</div>
<div style="order: 3;">2</div>
<div style="order: 4;">4</div>
<div style="order: 5;">5</div>
<div style="order: 6;">6</div>
<div style="order: 7;">7</div>
<div style="order: 8;">8</div>
<div style="order: 9;">9</div>
</div>
</body>
</html>
运行结果:
四.CSS浮动(float)
1.浮动元素:float:left|right
2.设置了float属性的元素即为浮动元素,浮动元素脱离了正常的文档流(标准流),不遵循“从左到右,从上到下,遇块换行”的标准文档流的排布方式
3.可以清除浮动:clear:left|right|both
4.规律一:
如果某个元素是浮动元素,那么有两种情况:
(1)这个浮动元素的上一个元素是标准流中的元素,则该浮动元素与上一个标准流元素相对垂直位置不变
(2)这个浮动元素的上一个元素也是浮动元素,则这两个浮动元素在同一水平位置排列(除非两个浮动元素的宽度和超过水平位置总宽度,这种情况下该浮动元素会被“挤”到下一行)。
5.规律二:
(1) 设置了clear属性的元素,主动负责完成清除浮动(移动自身完成目标)。
例5(CSS浮动的使用):
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>float浮动元素</title>
<style type="text/css">
#div1{
width:30%;
height:80px;
background-color:#DDA0DD;
}
#div2{
width:40%;
height:80px;
background-color:#CD853F;
float:left;
}
#div3{
width:50%;
height:100px;
background-color:#2E8B57;
float:left;
}
#div4{
width:50%;
height:120px;
background-color:#FA8072;
}
#div5{
width:50%;
height:130px;
background-color:#FF0000;
}
</style>
</head>
<body>
<div id="div1">这是div1里面的内容</div>
<div id="div2">这是div2里面的内容</div>
<div id="div3">这是div3里面的内容</div>
<div id="div4">这是div4里面的内容</div>
<div id="div5">这是div5里面的内容</div>
</body>
</html>
运行结果:
【本次总结完】
以上是关于css样式设计思路总结的主要内容,如果未能解决你的问题,请参考以下文章