首頁 > web前端 > css教學 > 主體

容易被忽略CSS特性

黄舟
發布: 2016-12-16 10:17:04
原創
1224 人瀏覽過

容易被忽略CSS特性

CSS初学感觉很简单,但随着学习的深入才感觉CSS的水由多深,平常总会遇到各种坑,先总结一些经常遇到的坑

大小写不敏感

虽然我们平时在写CSS的时候都是用小写,但其实CSS并不是大小写敏感的

.test{    background-COLOR:#a00;    width:100px;    height: 100px;}

虽然把background-color写为了background-COLOR,但仍然会生效,之所以写成小写是因为xhtml标准的关系,但是即使不是xhtml还是写成小写比较好,美观、易读而且可以应对可能的转换需求

选择器优先级

当两个规则都作用到了同一个html元素上时,如果定义的属性有冲突,那么应该用谁的值的,CSS有一套优先级的定义。

不同级别

在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式。

作为style属性写在元素内的样式

id选择器

类选择器

标签选择器

通配符选择器

浏览器自定义或继承

同一级别

同一级别中后写的会覆盖先写的样式

上面的级别还是很容易看懂的,但是有时候有些规则是多个级别的组合,像这样

       Document        



到底div是应用那条规则呢,有个简单的计算方法(经园友提示,权值实际并不是按十进制,用数字表示只是说明思想,一万个class也不如一个id权值高)

内联样式表的权值为 1000

ID 选择器的权值为 100

Class 类选择器的权值为 10

HTML 标签选择器的权值为 1

我们可以把选择器中规则对应做加法,比较权值,如果权值相同那就后面的覆盖前面的了,div.class的权值是1+10=11,而.test1 .test2的权值是10+10=20,所以div会应用.test1 .test2变成绿色

行内(inline)元素的一些属性

并不是所有的属性对行内元素都能够生效

行内元素不会应用width属性,其长度是由内容撑开的

行内元素不会应用height属性,其高度也是由内容撑开的,但是高度可以通过line-height调节

行内元素的padding属性只用padding-left和padding-right生效,padding-top和padding-bottom会改变元素范围,但不会对其它元素造成影响

行内元素的margin属性只有margin-left和margin-right有效,margin-top和margin-bottom无效

行内元素的overflow属性无效,这个不用多说了

行内元素的vertical-align属性无效(height属性无效)

       123456789123456789    
   
       123456789    

透過例子可以看出,我們對span設定的width和height屬性並沒有生效,margin-top和margin-bottom無效,padding-top和padding-bottom會改變元素範圍(背景區域變大了),但並沒有影響下面元素位置

一些互斥的元素

對於absolute和fixed定位的(固定大小,設定了width和height屬性)元素,如果設定了top和left屬性,那麼設定bottom和right值就沒有作用了,應該是top和left優先權高,否則同時寫了瀏覽器怎麼知道按照誰定位

對於absolute和fixed定位的元素,如果設定了top、left、bottom、right的值後margin屬性也就不起作用了

對於absolute和fixed定位的元素,如果設定了top、left、bottom、right的值後float屬性同樣會失效

塊元素​​如果設定了float屬性或者是absolute、fixed定位,那麼vertical-align屬性不再起作用

font-size單位

我們在寫字體的尺寸的時候常用的單位有

px

pt

em

rem

px是pixel縮寫,是基於像素的單位.在瀏覽網頁過程中,屏幕上的文字、圖片等會隨屏幕的分辨率變化而變化,一個100px寬度大小的圖片,在800×600分辨率下,要佔螢幕寬度的1/8,但在1024×768下,則只佔約1/10。所以如果在定義字體大小時,使用px作為單位,那麼一旦用戶改變顯示器解析度從800到1024,用戶實際看到的文字就要變「小」(自然長度單位),甚至會看不清,影響瀏覽。

pt是point(磅)縮寫,是一種固定長度的度量單位,大小為1/72英吋。如果在web上使用pt做單位的文字,字體的大小在不同螢幕(同樣解析度)下一樣,這樣可能會對排版有影響,但在Word中使用pt相當方便。因為使用Word主要目的都不是為了螢幕瀏覽,而是輸出列印。當列印到實體時,pt作為一個自然長度單位就方便實用了:比如Word中普通的文檔都用“宋體9pt”,標題用“黑體16pt”等等,無論電腦怎麼設置,打印出來永遠就是這麼大。

em:是相對單位,是一個相對長度單位,最初是指字母M的寬度,所以叫em,現指的是字符寬度的倍數,用法類似百分比,如:0.8em, 1.2em,2em等。通常1em=16px(瀏覽器預設字體大小16px),em是指父元素的字體大小。在一個頁面上給定了一個父元素的字體大小,這樣就可以通過調整一個元素來成比例的改變所有元素大小.它可以自由縮放,比如用來製作可伸縮的樣式表。類似還有ex的概念,ex 相對於字元「x」的高度,此高度通常為字體尺寸的一半。

rem:rem是CSS新增的,em是相對於其父元素來設置字體大小的,這樣就會存在一個問題,進行任何元素設置,都有可能需要知道他父元素的大小,在多次使用時,就會帶來無法預知的錯誤風險。而rem是相對於根元素(r:root),使用rem我們只需要在根元素確定一個參考值,然後就可以控制整個html頁面所有字體了。

:checked 選擇器範圍

我們知道:checked會選擇被選中的checkbox和radio,看個例子

    三 >Document            
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!