基本介紹
- 中文名:層疊樣式表3級
- 外文名:Cascading Style Sheets Level 3
- 簡稱:CSS3
- 制訂時間:1999年
- 草案完成時間:2001年5月23日
發展進程
時間 | 名稱 | 最後狀態 | 模組 |
---|---|---|---|
2001.07.26 - 2018.12.18 | 基本盒子模型 | 工作草案 | css-box-3 |
1999.06.23 - 2018.05.28 | 多列布局 | 工作草案 | css-multicol-1 |
1999.06.22 - 2018.06.19 | 顏色模組 | 推薦 | css-color-3 |
1999.08.03 - 2018.11.06 | 選擇器 | 推薦 | selectors-3 |
2001.04.04 - 2012.06.19 | 媒體查詢 | 推薦 | css3-mediaqueries |
1999.06.22 - 2018.10.18 | 分頁媒體模組 | 工作草案 | css-page-3 |
2011.09.01 - 2013.04.04 | 條件規則模組 | 候選推薦 | css3-conditionalr |
1999.01.27 - 2018.07.03 | 文本修飾模組 | 候選推薦 | css-text-decor-3 |
2001.07.31- 2018.09.20 | 字型模組 | 推薦 | css-fonts-3 |
1999.06.25 - 2014.03.20 | 命名空間模組 | 推薦 | css-namespaces-3 |
2006.06.12 - 2014.05.13 | 分頁媒體模組生成內容 | 工作草案 | css-gcpm-3 |
2001.09.24 - 2017.10.17 | 背景和框線模組 | 候選推薦 | css-backgrounds-3 |
2004.02.24 - 2014.10.14 | 超連結顯示模組 | 工作組筆記 | css3-hyperlinks |
2008.08.01 - 2014.10.14 | Marquee模組 | 工作組筆記 | css3-marquee |
2003.08.13 - 2014.02.20 | 語法模組 | 候選推薦 | css-syntax-3 |
2005.12.15 - 2015.03.26 | 模板布局模組 | 工作組筆記 | css-template-3 |
2002.08.02 - 2018.06.21 | 基本用戶界面模組 | 推薦 | css-ui-3 |
2001.07.13 - 2018.08.28 | 級聯和繼承 | 候選推薦 | css-cascade-3 |
2003.05.14 - 2016.06.02 | 生成內容模組 | 工作草案 | css-content-3 |
2001.07.13 - 2019.01.31 | 取值和單位模組 | 候選推薦 | css-values-3 |
2012.02.28 - 2018.12.04 | 片段模組 | 候選推薦 | css-break-3 |
2010.12.02 - 2018.05.24 | 書寫模式 | 候選推薦 | css-writing-modes-3 |
2012.10.09 - 2017.12.14 | 計數器風格 | 候選推薦 | css-counter-styles-3 |
編程開發
工作原理
#object{ transform: rotate(15deg) translateX(230px) scale(1.5, 2.6) skew(220deg, -150deg) translateX(230px);}
#object{ transform:matrix(1.06, 1.84, 0.54, 2.8, 466, 482);}
語言基礎
選擇符類型 | 表達式 | 描述 |
---|---|---|
子串匹配的屬性選擇符 | E[att^="val"] | 匹配具有att屬性、且值以val開頭的E元素 |
E[att$="val"] | 匹配具有att屬性、且值以val結尾的E元素 | |
E[att*="val"] | 匹配具有att屬性、且值中含有val的E元素 | |
結構性偽類 | E:root | |
E:nth-child(n) | 匹配父元素中的第n個子元素E | |
E:nth-last-child(n) | 匹配父元素中的倒數第n個結構子元素E | |
E:nth-of-type(n) | 匹配同類型中的第n個同級兄弟元素E | |
E:nth-last-of-type(n) | 匹配同類型中的倒數第n個同級兄弟元素E | |
E:last-child | 匹配父元素中最後一個E元素 | |
E:first-of-type | 匹配同級兄弟元素中的第一個E元素 | |
E:only-child | 匹配屬於父元素中唯一子元素的E | |
E:only-of-type | 匹配屬於同類型中唯一兄弟元素的E | |
E:empty | 匹配沒有任何子元素(包括text節點)的元素E | |
目標偽類 | E:target | 匹配相關URL指向的E元素 |
UI元素狀態偽類 | E:enabled | 匹配所有用戶界面(form表單)中處於可用狀態的E元素 |
E:disabled | 匹配所有用戶界面(form表單)中處於不可用狀態的E元素 | |
E:checked | 匹配所有用戶界面(form表單)中處於選中狀態的元素E | |
E::selection | 匹配E元素中被用戶選中或處於高亮狀態的部分 | |
否定偽類 | E:not(s) | 匹配所有不匹配簡單選擇符s的元素E |
通用兄弟元素選擇器 | E ~ F | 匹配E元素之後的F元素 |
新增特性
/*圓角框線*/div{ border:2px solid; border-radius:25px;}/*圖片框線*/div{ border-image:url(border.png) 30 30 round; -webkit-border-image:url(border.png) 30 30 round; /* Safari 5 and older */ -o-border-image:url(border.png) 30 30 round; /* Opera */}
/*多圖背景*/#example1 { background-image: url(img_flwr.gif), url(paper.gif); background-position: right bottom, left top; background-repeat: no-repeat, repeat; }/*或*/#example1 { background: url(img_flwr.gif) right bottom no-repeat, url(paper.gif) left top repeat;}
/*多列布局*/.newspaper{ column-count:3; column-gap:40px; column-rule-style:outset; column-rule-color:#ff0000; column-rule-width: 1px;}h2{ column-span:all;}/*彈性盒子*/<style> .flex-container { display: flex; justify-content: center; width: 400px; height: 250px; background-color: lightgrey;}.flex-item { background-color: cornflowerblue; width: 100px; height: 100px; margin: 10px;}</style><div class="flex-container"> <div class="flex-item">flex item 1</div> <div class="flex-item">flex item 2</div> <div class="flex-item">flex item 3</div> </div>
/*2D轉換*//*移動*/div{ transform: translate(50px,100px); }/*旋轉*/div{ transform: rotate(30deg);}/*改變寬高*/div{ transform: scale(2,3);}/*傾斜*/div{ transform: skew(30deg,20deg);}/*使用六個值的矩陣實現轉換*/div{ transform: matrix(0.866,0.5,-0.5,0.866,0,0);}/*3D轉換*//*圍繞X軸旋轉*/div{ transform:rotateX(120deg);}/*圍繞Y軸旋轉*/div{ transform:rotateY(130deg);}/*圍繞Z軸旋轉*/div{ transform:rotateZ(140deg);}/*圍繞Z軸旋轉*/div{ transform:rotateZ(140deg);}/*改變被轉換元素的位置*/#div2{ transform: rotate(45deg); transform-origin:20% 40%;}/*讓轉換的子元素保留3D轉換*/<style>#div1{ padding:50px; position: absolute; border: 1px solid black; background-color: red; transform: rotateY(60deg); transform-style: preserve-3d;}#div2{ padding:40px; position: absolute; border: 1px solid black; background-color: yellow; transform: rotateY(-60deg);}</style><div id="div1">HELLO <div id="div2">YELLOW</div></div>/*透視效果及規定其底部位置*/div{ perspective:150; perspective-origin: 10% 10%;}/*定義元素在不面對螢幕時是否可見*/div{ backface-visibility:hidden;/*可見為visible*/}
/*過渡*/div{ transition-property: width; transition-duration: 1s; transition-timing-function: linear; transition-delay: 2s;}/*或*/div{ transition: width 1s linear 2s;}/*動畫*/div{ width:100px; height:100px; background:red; animation:myfirst 5s;}@keyframes myfirst{ 0% {background:red;} 25% {background:yellow;} 50% {background:blue;} 100% {background:green;}}
/*引入字型*/@font-face{ font-family: myFirstFont; src: url(sansation_light.woff);}div{ font-family:myFirstFont;}
/*媒體查詢判定螢幕可視視窗尺寸*/body { background-color: pink;}@media screen and (min-width: 480px) { body { background-color: lightgreen; }}
/*文本陰影*/h1{ text-shadow: 5px 5px 5px #FF0000;}/*盒子陰影*/div{ box-shadow: 10px 10px 5px #888888;}
兼容問題
#example{ -webkit-box-shadow:0 3px 5px#FFF; -moz-box-shadow:0 3px 5px#FFF; -o-box-shadow:0 3px 5px#FFF; box-shadow:0 3px 5px#FFF;/*無前綴的樣式*/}