CSS從基礎知識到技巧總結,知識點十分繁多。爲了將這些知識點進行一個系統的總結。我列舉了一下幾部分進行記憶。個人記憶方法主要是記住全部的CSS書寫順序,而後對每一個屬性進行屬性的相關功能進行記憶。這樣就能夠作到總體呈現結構式的記憶。css
目錄html
- 第一部分 CSS規範
- 第二部分 位置屬性
- 第三部分 大小
- 第四部分 文字系列
- 第五部分 背景
- 第六部分 動畫
1.位置屬性(position, top, right, z-index, display, float等)
2.大小(width, height, padding, margin)
3.文字系列(font, line-height, letter-spacing, color- text-align等)
4.背景(background, border等)
5.其餘(animation, transition等)
複製代碼
- -moz- /* 火狐等使用Mozilla瀏覽器引擎的瀏覽器 */
- -webkit- /* Safari, 谷歌瀏覽器等使用Webkit引擎的瀏覽器 */
- -o- /* Opera瀏覽器(早期) */
- -ms- /* Internet Explorer (不必定) */
常見的須要寫兼容的CSS屬性以下:web
注意:<keywords> 和 <version> 都爲選填
<!--[if <keywords>? IE <version>?]>
HTML代碼塊
<![endif]-->
複製代碼
<keywords>
if條件共包含6種選擇方式:是否、大於、大於或等於、小於、小於或等於、非指定版本
是否:
指定是否IE或IE某個版本。關鍵字:空
大於:
選擇大於指定版本的IE版本。關鍵字:gt(greater than)
大於或等於:
選擇大於或等於指定版本的IE版本。關鍵字:gte(greater than or equal)
小於:
選擇小於指定版本的IE版本。關鍵字:lt(less than)
小於或等於:
選擇小於或等於指定版本的IE版本。關鍵字:lte(less than or equal)
非指定版本:
選擇除指定版本外的全部IE版本。關鍵字:!
複製代碼
大於或等於,示例代碼:
<!--[if gte IE 6]>
<style>
.test{color:red;}
</style>
<![endif]-->
複製代碼
- 佈局
- 最小固定寬度佈局
- 百分比佈局
- 柵格佈局、彈性佈局
- js + rem 佈局方案
- 經典聖盃佈局
- position:(sticky footer、sticky list、sticky Modal)/(BFC)
- z-index失效
- display:清除浮動、去掉img幾像素的空白、水平垂直居中
- display:table/table-cell/table-row/flex
- display:none與visibility:hidden的區別?
效果圖以下:瀏覽器
效果圖以下:bash
效果圖以下:less
BFC Block Formatting Context 塊級格式化上下文ide
> 方法一:
#test{clear:both;}
#test爲浮動元素的下一個兄弟元素
> 方法二:
#test{display:block;zoom:1;overflow:hidden;}
#test爲浮動元素的父元素。zoom:1也能夠替換爲固定的width或height
> 方法三:
#test{zoom:1;}
#test:after{display:block;clear:both;visibility:hidden;height:0;content:'';}
#test爲浮動元素的父元素
複製代碼
> 方法一:
img{display:block;}
> 方法二:
img{vertical-align:top;}
除了top值,還能夠設置爲text-top | middle | bottom | text-bottom,甚至特定的<length>和<percentage>值均可以
> 方法三:
#test{font-size:0;line-height:0;}
test爲img的父元素
複製代碼
如何讓元素水平居中佈局
元素爲 inline-* 系列(包括inline/inline-block/inline-table/inline-flex)
text-align:center;
元素爲block:
margin: 0 auto;
多個塊級元素:
{
display:inline-block;
text-aligin:center;
}
或者
{
display:flex;
justify-content:center;
}
複製代碼
如何讓元素垂直居中post
單行文本
{
padding-top:30px;
padding-bottom:30px;
}
或者
{
height:30px;
line-height:30px
}
多行文本
<div><p>文本文本文本文本文本</p></div>
方法一:
div{
display: flex;
flex-direction: column;
justify-content: center;
}
方法二:
div{
display: table;
}
p{
display:table-cell;
vertical-align:middle;
}
複製代碼
知道高度
.parent{
position: relative;
}
.child{
position: absolute;
top: 50%;
height: 100px;
margin-top: -50px;
}
不知道高度
.parent{
position: relative;
}
.child{
position: absolute;
top: 50%;
transform: translateY(-50%);
}
複製代碼
.parent{
display: flex;
flex-direction: column;
justify-content: center;
}
複製代碼
如何讓元素水平垂直居中flex
固定寬帶和高度:
.parent{
position: relative;
}
.child{
position: absolute;
top: 50%;
left:50%;
width:100px;
height:100px;
margin:-50px 0 0 -50px;
}
不知道高度和寬度:
.parent{
position: relative;
}
.child{
position: absolute;
top: 50%;
left:50%;
transform: translate(-50%,-50%);
}
使用flex
.parent{
display: flex;
justify-content: center;
align-items: center;
}
複製代碼
- 相同的是display:none與visibility:hidden均可以用來隱藏某個元素; 不一樣的是display:none在隱藏元素的時候,將其佔位空間也去掉;
- 而visibility:hidden只是隱藏了內容而已,其佔位空間仍然保留。
注意:
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
複製代碼
<div class="image-header">
<img :src="food.image">
</div>
CSS代碼:
.image-header{
position: relative;
width: 100%;
height: 0;
/**100%:高度=寬度 80%:高度=0.8*寬度*/
padding-top: 100%;
img{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
複製代碼
一篇很好的關於繪製三角形原理的文章 點這裏
html代碼:<div id="triangle"></div>
正三角形:
#triangle{
width: 0;
height: 0;
border-bottom: 100px solid red;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
}
複製代碼
接下來的請點擊CSS技巧總結2