基礎彙總
(1)例:
a:link:hover {background-color:red} // 未訪問鏈接鼠標懸停背景色爲red
a:visited:hover {background-color:blue} // 訪問鏈接後鼠標懸停背景色爲blue
(2) 設置的繼承樣式在子元素上不生效:
原因:瀏覽器爲該元素設置了默認的樣式,導致繼承的樣式無效。繼承的樣式沒有特殊性。
繼承樣式的缺點:很難確定樣式的來源。
(3) 元素框的尺寸:
即爲調試時選中元素時顯示的寬高:由 (border + padding + 內容) 構成。
(4) 外邊距疊加:
普通文檔流的塊框的垂直外邊距纔會發生外邊距疊加,行內框、浮動框、絕對定位框之間的外邊距不會疊加。
外邊距疊加的應用:使得段落文本之間的間距一致。
(5) css中三種基本定位機制:
普通流、浮動和絕對定位。
(6) 行內框:
①修改行框尺寸的方法:修改行高、水平邊框、內邊距和外邊距。
②行內框豎直方向上的內邊距無效嗎?
在給行內框添加背景色後,設置豎直方向上的內邊距時發現確實生效了,但事實上設置的內邊距並不佔據實際的空間,即不影響其他的元素佈局。因此可以認爲給行內框設置豎直方向上的內邊距無效。
(7) 匿名塊框和匿名行框:
<div>
some text <!--此處默認產生一個匿名塊框-->
<p>text</p>
</div>
<div>
some text <!--此處默認產生一個匿名行框-->
<em>text</em>
</div>
平滑滾動
(1)設置屬性:scroll-behavior: smooth;
以前使用錨點跳轉時總是快速的定位到指定位置,而使用平滑滾動後,頁面會有一個滾動的過程,效果更好。
設置時只需要給滾動的盒子設置scroll-behavior: smooth屬性即可,也可以在 css reset 時給 body, html 設置。
(2)除此之外,也可以使用JS提供的scrollIntoView(),傳入參數behavior: ‘smooth’ 。
target.scrollIntoView({
behavior: 'smooth'
})
如果在css中設置了scroll-behavior: smooth 直接調用 target.scrollIntoView即可,不需要再傳入參數。
// 判斷是否支持scroll-behavior屬性
if (typeof window.getComputedStyle(document.body).scrollBehavior == 'undefined') {
...
}