亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

CSS

詳細(xì)解答CSS中相同元素不同結(jié)構(gòu)重復(fù)定義的問題

時間:2023-08-29 10:10:13 曉怡 CSS 我要投稿
  • 相關(guān)推薦

詳細(xì)解答CSS中相同元素不同結(jié)構(gòu)重復(fù)定義的問題

  CSS選擇器是構(gòu)建CSS的基礎(chǔ).在為大型,復(fù)雜嵌套的(x)HTML文檔進(jìn)行樣式定義時,很有可能會遇上針對相同元素在不同結(jié)構(gòu)下的重復(fù)定義的問題,這個問題也是前端開發(fā)人員相對頭痛的問題。下面是小編為大家收集的詳細(xì)解答CSS中相同元素不同結(jié)構(gòu)重復(fù)定義的問題,歡迎大家借鑒與參考,希望對大家有所幫助。

  在開發(fā)網(wǎng)頁時,有時需要為同一元素定義多個樣式,即重復(fù)定義css。這可能是因為我們希望根據(jù)不同的情況為該元素應(yīng)用不同的樣式。但是,當(dāng)我們多次定義同一元素的樣式時,會出現(xiàn)一些問題,如樣式覆蓋、代碼冗余等。因此,我們需要了解如何重復(fù)定義css。

  首先,我們需要明確css選擇器的優(yōu)先級。css選擇器優(yōu)先級的計算規(guī)則為:ID選擇器 >類選擇器、屬性選擇器、偽類 >元素選擇器、偽元素。也就是說,ID選擇器的優(yōu)先級最高。

  為了避免樣式覆蓋的問題,我們可以使用!important來強(qiáng)制指定某個樣式的優(yōu)先級。

  上述代碼會將所有p元素的字體顏色設(shè)置為藍(lán)色,并優(yōu)先于其他樣式生效。

  但是,過度使用!important會使代碼臃腫,難以維護(hù)。因此,我們應(yīng)該盡量避免使用它。

  另外,我們還可以將不同情況下的樣式集中定義在同一個樣式表中,并使用不同的class來區(qū)分。

  上述代碼會將所有p元素的字體大小設(shè)置為16px,字體顏色設(shè)置為黑色。如果我們希望某個p元素具有特殊的顏色,則可以添加warning類:

  這樣,只有類名為warning的p元素才會應(yīng)用特殊的樣式。

  總之,重復(fù)定義css并不是一個好習(xí)慣。我們應(yīng)該盡量避免樣式覆蓋,降低代碼冗余。如果確實需要為同一元素定義多個樣式,可以使用!important或class來控制優(yōu)先級。

  css屬性定位教程

  CSS為定位和浮動提供了一些屬性,利用這些屬性,可以建立列式布局,將布局的一部分與另一部分重疊,還可以完成多年來通常需要使用多個表格才能完成的任務(wù)。

  定位的基本思想很簡單,它允許你定義元素框相對于其正常位置應(yīng)該出現(xiàn)的位置,或者相對于父元素、另一個元素甚至瀏覽器窗口本身的位置。顯然,這個功能非常強(qiáng)大,也很讓人吃驚。要知道,用戶代理對CSS2中定位的支持遠(yuǎn)勝于對其它方面的支持,對此不應(yīng)感到奇怪。

  另一方面,CSS1中首次提出了浮動,它以Netscape在Web發(fā)展初期增加的一個功能為基礎(chǔ)。浮動不完全是定位,不過,它當(dāng)然也不是正常流布局。我們會在后面的章節(jié)中明確浮動的含義。

  一切皆為框

  div、h1或p元素常常被稱為塊級元素。這意味著這些元素顯示為一塊內(nèi)容,即“塊框”。與之相反,span和strong等元素稱為“行內(nèi)元素”,這是因為它們的內(nèi)容顯示在行中,即“行內(nèi)框”。

  您可以使用display屬性改變生成的框的類型。這意味著,通過將display屬性設(shè)置為block,可以讓行內(nèi)元素(比如元素)表現(xiàn)得像塊級元素一樣。還可以通過把display設(shè)置為none,讓生成的元素根本沒有框。這樣的話,該框及其所有內(nèi)容就不再顯示,不占用文檔中的空間。

  但是在一種情況下,即使沒有進(jìn)行顯式定義,也會創(chuàng)建塊級元素。這種情況發(fā)生在把一些文本添加到一個塊級元素(比如div)的開頭。即使沒有把這些文本定義為段落,它也會被當(dāng)作段落對待:

  sometext

  Somemoretext.

  在這種情況下,這個框稱為無名塊框,因為它不與專門定義的元素相關(guān)聯(lián)。

  塊級元素的文本行也會發(fā)生類似的情況。假設(shè)有一個包含三行文本的段落。每行文本形成一個無名框。無法直接對無名塊或行框應(yīng)用樣式,因為沒有可以應(yīng)用樣式的地方(注意,行框和行內(nèi)框是兩個概念)。但是,這有助于理解在屏幕上看到的所有東西都形成某種框。

  CSS定位機(jī)制

  CSS有三種基本的定位機(jī)制:普通流、浮動和絕對定位。

  除非專門指定,否則所有框都在普通流中定位。也就是說,普通流中的元素的位置由元素在X(HTML)中的位置決定。

  塊級框從上到下一個接一個地排列,框之間的垂直距離是由框的垂直外邊距計算出來。

  行內(nèi)框在一行中水平布置?梢允褂盟絻(nèi)邊距、邊框和外邊距調(diào)整它們的間距。但是,垂直內(nèi)邊距、邊框和外邊距不影響行內(nèi)框的高度。由一行形成的水平框稱為行框(LineBox),行框的高度總是足以容納它包含的所有行內(nèi)框。不過,設(shè)置行高可以增加這個框的高度。

  在下面,我們會為您詳細(xì)講解相對定位、絕對定位和浮動。

  CSSposition屬性

  通過使用position屬性,我們可以選擇4中不同類型的定位,這會影響元素框生成的方式。

  position屬性值的含義:

  static

  元素框正常生成。塊級元素生成一個矩形框,作為文檔流的一部分,行內(nèi)元素則會創(chuàng)建一個或多個行框,置于其父元素中。

  relative

  元素框偏移某個距離。元素仍保持其未定位前的形狀,它原本所占的空間仍保留。

  absolute

  元素框從文檔流完全刪除,并相對于其包含塊定位。包含塊可能是文檔中的另一個元素或者是初始包含塊。元素原先在正常文檔流中所占的空間會關(guān)閉,就好像元素原來不存在一樣。元素定位后生成一個塊級框,而不論原來它在正常流中生成何種類型的框。

  fixed

  元素框的表現(xiàn)類似于將position設(shè)置為absolute,不過其包含塊是視窗本身。

  提示:相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對于它在普通流中的位置。

  CSS定位屬性

  CSS定位屬性允許你對元素進(jìn)行定位。

  屬性描述

  position把元素放置到一個靜態(tài)的、相對的、絕對的、或固定的位置中。

  top定義了一個定位元素的上外邊距邊界與其包含塊上邊界之間的偏移。

  right定義了定位元素右外邊距邊界與其包含塊右邊界之間的偏移。

  bottom定義了定位元素下外邊距邊界與其包含塊下邊界之間的偏移。

  left定義了定位元素左外邊距邊界與其包含塊左邊界之間的偏移。

  overflow設(shè)置當(dāng)元素的內(nèi)容溢出其區(qū)域時發(fā)生的事情。

  clip設(shè)置元素的形狀。元素被剪入這個形狀之中,然后顯示出來。

  vertical-align設(shè)置元素的垂直對齊方式。

  z-index設(shè)置元素的堆疊順序。