简写顺序
- background:
书写顺序
- 定位属性: position, float, z-index, clear
- 盒模型相关属性: padding, margin, display, width, height, border
- 字体相关
- CSS2 视觉相关属性 (background)
- CSS3 属性 (border-radius, box-shadow)
文字单行省略号
-o-text-overflow: ellipsis;/*兼容opera*/
text-overflow: ellipsis;/*这就是省略号喽*/
overflow: hidden;/*设置超过的隐藏*/
white-space: nowrap;/*设置不折行*/
黑色遮罩层(显示图片大图)
<div class="origin-image">
</div>
.origin-image {
-webkit-user-select: none;
width: 100%;
height: 100%;
display: none;
background: rgba(0,0,0,0.70);
text-align: center;
position: fixed;
top: 0;
left: 0;
z-index: 999;
img {
position: relative;
top: 50%;
}
}
全屏图片首页
html {
background: url(images/bg.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
body 中加入 font-family: ‘Helvetica Neue’, Arial, ‘liberation Sans’, FreeSans, ‘Hiragino Sans GB’, sans-serif; 字体会从第一个开始往后寻找浏览器能够识别的字体。
避免“多类症”,“多div症”
使用后代选择器减少class的使用,使用特定标签减少div的使用
!important重要次序
- 标为!important的用户样式
- 标为!important的作者样式
- 作者样式
- 用户样式
- 浏览器/用户代理应用的样式
让DIV盒子在任何浏览器中任何分辨率的显示屏浏览器中处于水平居中和上下垂直居中
使用绝对定位position:absolute,使用left和top设置对象距离上和左为50%,但如果设置50%,实际上盒子是没有实现居中效果,所以又设置margin-left的值是宽度一半,margin-top的值也是对象高度一半,同时设置为负,这样就实现了水平和垂直居中
高度(height)与宽度(width)设置成百分比的时候需要设置父类元素的宽高
比如将父类元素设置成100%,子类为50%,子类才能正常显示。
div中包含链接(扩大链接点击范围)
<div id="play"><a class="start">PLAY</a></div>
#play {
width: 300px;
height: 300px;
}
#play a {
display: block;
height: 100%;
width: 100%;
cursor: pointer;
}
一般通用模版初始化
- 每次新开发页面的共同可用的CSS代码模板如下:
normalize.css
- 每次新开发页面的HTML代码模板如下:
<!--
HTML5. Use tags like <article>, <section>, etc.
See: http://www.sitepoint.com/web-foundations/doctypes/
-->
<html lang="en">
<head>
<meta charset="utf-8">
<!--
Ask IE to behave like a modern browser
See: https://www.modern.ie/en-us/performance/how-to-use-x-ua-compatible
-->
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Profile</title>
<!--
Disables zooming on mobile devices.
-->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!--
Stylesheet that minimizes browser differences.
See: http://necolas.github.io/normalize.css/
-->
<link rel="stylesheet" href="css/normalize.css">
<!--
Our own stylesheet.
-->
<link rel="stylesheet" href="css/main.css">
</head>
<body>
</body>
</html>
CSS省略号text-overflow超出溢出显示省略号
text-overflow参数值和解释: clip : 不显示省略标记(…),而是简单的裁切 ellipsis : 当对象内文本溢出时显示省略标记(…) 要想实现显示不完内容将显示省略号代替,还需要html nobr标签完成(nobr禁止换行标签)
overflow: hidden;
text-overflow: ellipsis;
<li><a href="#"><nobr>显示不完显示省略号,测试内容</nobr></a></li>
div占据整个屏幕
必须使用绝对布局absolute,否则无法设置高度的百分比height: 100%;。
空白边叠加
相对定位与绝对定位区别
- relative(相对定位): 相对定位是相对于它出现在文档流中的相对位置,对象不可层叠、不脱离文档流,参考自身静态位置通过 top,bottom,left,right 定位,并且可以通过z-index进行层次分级(可以控制层叠来显示哪个元素在上面)。
- absolute(绝对定位):
选取其最近一个最有定位设置的父级对象进行绝对定位,父类元素可以使用
position: relative
定位。脱离文档流,通过 top,bottom,left,right 定位。如果对象的父级没有设置定位属性,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级(可以控制层叠来显示哪个元素在上面)。
不要使用小数控制大小,包括百分比(%)单位和像素(px)单位。
清除浮动:
-
有多余的div
<div class="clear"></div> 在css中加入 .class{ clear: both; }
-
支持ie6以上浏览器(父级div定义 伪类:after 和 zoom)
<div class="news clear"></div> .clear:after { content: "."; height: 0; visibility: hidden; display: block; clear: both; }
例子如下:
/*清除浮动代码*/ .clearfloat:after{ display:block; clear:both; content:""; visibility:hidden; height:0 } .clearfloat{ zoom:1 } <div class="div1 clearfloat"> <div class="left">Left</div> <div class="right">Right</div> </div> <div class="div2"> div2 </div>
or
.clearfix:after {
content:"";
display:table;
clear:both;
}
原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题 优点:浏览器支持好,不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等) 缺点:代码多,不少初学者不理解原理,要两句代码结合使用,才能让主流浏览器都支持。 建议:推荐使用,建议定义公共类,以减少CSS代码。
- 父级div定义 overflow:hidden
<style type="text/css">
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:hidden}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度
优点:简单,代码少,浏览器支持好
缺点:不能和position配合使用,因为超出的尺寸的会被隐藏。
建议:只推荐没有使用position或对overflow:hidden理解比较深的朋友使用。
导航的常见设置:
ul { list-style: none; padding: 0; margin: 0;} 去掉前面的点
ul li { display: inline; } 导航横向排列(不要使用浮动)
display
inline-block可以使用margin,padding
a标签去掉下划线
text-decoration:none;
扩大链接可以点击的范围设置:
1.设置成块元素然后放大:
display: inline-block;
width: 180px;
height: 210px;
2.直接在链接中padding:
a {
padding: 10px;
}
居中设置
- 使div本身居中
margin: 0 auto;
orwidth: 40%; margin-left: auto; margin-right: auto;
- 使div中的元素居中
text-align: center;
打开新页面时设置:
target: '_blank'
常用元素
- 布局定位: position
- 即字间隔: word-spacing
- 生成框类型: display
- 列表属性: list-style ( ul ol li )
- 行间的距离: line-height
- 文本的水平对齐方式: text-align
- 内容溢出元素框时: overflow
- 向框添加一个或多个阴影: box-shadow
- 文本阴影效果: text-shadow
- 规定自动换行的处理方法(Opera不支持): word-break
- 文本溢出包含元素: text-overflow
- 向 div 元素添加圆角边框: border-radius
- 透明度: opacity
- 指针形状: cursor
- 堆叠顺序: z-index (哪些元素优先显示)
- 过滤器: filter
不常用元素
- 表格的边框是否被合并为一个单一的边框,还是象在标准的 HTML 中那样分开显示: border-collapse
- 相邻单元格的边框间的距离(仅用于“边框分离”模式): border-spacing
- 元素内的空白: white-space
- 文本方向: direction (文字靠左还是靠右,rtl文本方向从右到左,ltr默认。文本方向从左到右。)
- 设置文本的方向: unicode-bidi (与上面元素结合使用。)
font字体类型
- font-family: ‘Helvetica Neue’, Helvetica, Arial, ‘Hiragino Sans GB’, ‘Heiti SC’, ‘Microsoft YaHei UI’, ‘Microsoft YaHei’, sans-serif;
如何将页脚固定在页面底部
css选择器优先级
-
ID选择符优先级高于类选择符,类选择符的优先级高于HTML标记选择符。
- 类别选择器 1
- 标签选择器 1
- ID选择器 1
- 后代选择器 1 #links a{}
- 子选择器 2 #links>a{}
- 伪类选择器 1或2 a:hover{}
- 通用选择器 2 *{}
- 群组选择器 1 p,a,li{}
- 相邻同胞选择器 2 h1 + p{}
- 属性选择器 2 abbr[title]{} or p[title=’app’]{}
- 部分属性选择器 2 a[rel~=”friend”]{}
- 开始字符属性选择器 3 a[rel^=”friend”]{}
- 结束字符属性选择器 3 a[rel$=”friend”]{}
- 通配符字符属性选择器 3 a[href*=”some”]{}
-
语言属性选择器 2 html[lang =”en”]{}