最近在翻《CSS權威指南》,一些零散的知識點平時不太注意,這裏記錄一下。css
display指定了元素的顯示類型,它包含兩類基礎特徵,用於指定元素怎樣生成盒模型——外部顯示類型定義了元素怎樣參與流式佈局的處理,內部顯示類型定義了元素內子元素的佈局方式。html
<display-outside>(指定了元素的外部顯示類型,實際上就是其在流式佈局中的角色) = block | inline | run-in
<display-inside> (指定了元素的內部顯示類型,它們定義了元素內部內容的格式化上下文的類型)= flow | flow-root | table | flex | grid | ruby
<display-listitem> (元素的外部顯示類型變爲 block 盒,並將內部顯示類型變爲多個 list-item inline 盒)= <display-outside>? && [ flow | flow-root ]? && list-item
<display-internal> (用來定義這些「內部」顯示類型,只有在特定的佈局模型中才有意義)= table-row-group | table-header-group | table-footer-group | table-row | table-cell | table-column-group | table-column | table-caption | ruby-base | ruby-text | ruby-base-container | ruby-text-container
<display-box> (是否徹底生成顯示盒)= contents | none
<display-legacy> (CSS 2 對於 display 屬性使用單關鍵字語法)= inline-block | inline-list-item | inline-table | inline-flex | inline-grid
複製代碼
<link rel="stylesheet" href="day.css" title="Default Day">
<link rel="alternate stylesheet" href="night.css" title="Night">
複製代碼
rel(關係)中能夠指定候選樣式表,默認使用第一個樣式表。恰好看到這篇文章link rel=alternate網站換膚功能最佳實現,本身實現了一下: web
這裏的應用在於,若是咱們在開發一個CSS框架或者模式庫,定義一個類'btn btn-small btn-arrow btn-active'
顯得冗餘,咱們能夠直接使用'btn-small-arrow-active'
api
<button class="btn-small-arrow-active"></button>
*[class|="btn"][class*="-arrow"]:after {content: '▼'}
複製代碼
一個元素可能被兩個或多個規則匹配,其中只有一個規則能勝出,特指度可以解決衝突。一個特指度由四部分構成,好比0, 0, 0, 0
瀏覽器
0, 1, 0, 0
0, 0, 1, 0
0, 0, 0, 1
h1 {} /* 0, 0, 0, 1 */
p em {} /* 0, 0, 0, 2 */
.grape {} /* 0, 0, 1, 0 */
p.bright em.dark {} /* 0, 0, 2, 2 */
li#answer {} /* 0, 1, 0, 1 */
複製代碼
!important
重要規則始終勝出el::first-letter {} /*裝飾首字母*/
el::first-line {} /*裝飾首行*/
el::before {} /*前置內容元素*/
el::after {} /*後置內容元素*/
複製代碼
a:link {}
a:visited {}
a:focus {}
a:hover {}
a:active {}
複製代碼
可使用樣式獲取的元素上的HTML屬性值(實際兼容瀏覽器不多),例如:ruby
<!--css-->
p::before {content: "[" attr(id) "]"}
<!--html-->
<p id="leadoff">This is the first paragraph</p>
<!--顯示結果-->
[leadoff]This is the first paragraph
複製代碼
:root {/* 或者html */
--base-color: #639;
}
h1 {
color: var(--base-color);
}
複製代碼
<length>
| <percentage>
<number>
| <length>
| <percentage>
| normal
<length>
| <percentage>
<div class="bg-img">HELLO</div>
<!--css-->
.bg-img {
width: 1500px;
height: 400px;
color: transparent;
font-size: 300px;
background-image: url('bg.jpg');
background-size: contain;
-webkit-background-clip: text;
background-clip: text;
}
複製代碼
100% auto
(若是元素高度比寬度大,反之爲auto 100%
)未完待續bash