2015-07-28 100 views
0

當我創建一個HTML頁面的代碼爲什麼使用flex的樣式標籤也獲得「樣式」?

 <style> 
      * { 
       display: flex; 
       justify-content:center; 
       align-items:center; 
      } 
    </style> 

我得到這個輸出中

enter image description here

這是爲什麼?

[我不是在尋找解決方案,我要問爲什麼我使用的時候得到這個輸出的原因「顯示:彎曲」只(不使用其他CSS道具時)

+0

你能在撥弄提供此或在這裏添加HTML代碼。 –

+0

哈哈,它只是一行代碼。我認爲我們不需要jsfiddle ... –

+0

只需創建一個html文件並在其上放置代碼即可。 JSFiddle你不能添加樣式標籤 –

回答

0

請刪除*簽收前CSS屬性。 如果你想在所有應用樣式屬性,你必須使用 <style>

<style> 
    body *{ display: flex; 
      justify-content:center; 
      align-items:center; } 

</style> 

,如果你在.css文件中添加CSS類和屬性,你可以使用

*{ display: flex; justify-content:center; align-items:center;} 
+0

它是用來說,所有的HTML元素都需要這種風格..但是發生了什麼,即使風格元素有它 –

1

由於頭部和風格的默認從不顯示當您使用此代碼創建html頁面時

<style> 
    * { 
     display: flex; 
     justify-content:center; 
     align-items:center; 
    } 
</style> 

瀏覽器會生成以下DOM結構

enter image description here

既然你已經定義了樣式的所有元素(通過明星選擇),那麼這條規則也適用於headstyle元素,因此出現與你定義的風格

爲了防止這種行爲,你可以只適用於body及其後代,如果這是你的目標,例如

<style> 
    body, body * { 
     display: flex; 
     justify-content:center; 
     align-items:center; 
    } 
</style> 

,或者只是爲了除head

<style> 
    :not(head) { 
     display: flex; 
     justify-content:center; 
     align-items:center; 
    } 
</style> 
+0

嘗試 * {color:red} 或甚至 樣式{display:flex} –

+0

@ElheniMokhles我不明白:如果你塗上紅色,由於上述原因,你會看到紅色。你想要什麼呢? – fcalderan

+0

不,那不是結果,檢查它 –

0

*所有元素選擇所有元素,包括htmlheadstylebody和所有其它的標籤...不知何故,似乎有問題。看到這個demo

解決辦法是隻針對身體內的所有元素:

body * { 
    display: flex; 
    justify-content:center; 
    align-items:center; 
} 
+0

爲什麼使用style {dispaly:flex}我們沒有相同的東西? –

+0

我不明白你的意思... – LinkinTED

+0

嘗試使用相同的代碼,但代替「*」使用「風格」 我們會執行相同的聲音,對吧? –