2016-08-04 70 views
1

目前,框架與我共事採用了經典的clearfix:將update :: before和:: after後更新爲簡單::之後安全嗎?

@mixin clearfix { 
    zoom: 1; 

    &::before, 
    &::after { 
     content: ''; 
     display: table; 
    } 

    &::after { 
     clear: both; 
    } 
} 

我想知道,如果它的安全都放棄現在::before的是IE7不再支持,讓我可以clearfix爲了裝飾目的,可能還需要僞元素的元素。我的建議是把它變成如下:

@mixin clearfix { 
    &::after { 
     clear: both; 
     content: ''; 
     display: table; 
    } 
} 

據我所知,因爲它與::before做這只是工作,但我想絕對確保作出變化,這將影響之前如果我弄錯了,幾乎成千上萬的用戶,我不想成爲那個人。

在此先感謝!

+0

我們就沒有辦法知道。這是特定於你的情況,所以這個問題是基於觀點的,或者需要討論,所以對於堆棧溢出來說是無關緊要的。我不清楚你爲什麼覺得這個變化是不可能的... –

+0

這是真的特定於我的情況嗎?我認爲在一個有許多不同的clearfix解決方案的世界裏,這個問題有其優點。如前所述,我的目標是減少使用兩個僞元素的需求,而只有一個可以實現clearfix。我只是想知道是否有人知道繼續使用這兩個僞元素的任何理由。我覺得爲了釋放兩個僞元素中的一個可能需要進行更改,因此它可以用作可能還需要「內容」或「顯示」屬性的裝飾元素。 – langauld

+0

但是你的陳述*「這會影響成百上千的用戶」*是特定於你的。對於一般用途來說,它可能**很好,但如果它是關鍵任務,那就不同了。我們無法知道它是否在您的具體情況。只有你可以根據你的指標做出決定。 –

回答

0

我決定修改mixin,以便我可以在cue上使用簡單的版本,否則允許它默認爲當前版本。

我還注意到,IE8不支持任,因爲有用於假點雙冒號,所以我固定的太大,而我在那裏...

@mixin clear-fix($simple: false) { 
    @if $simple != true { 
     zoom: 1; 

     &:before, 
     &:after { 
      content: ''; 
      display: table; 
     } 

     &:after { 
      clear: both; 
     } 
    } 
    @else { 
     &::after { 
      clear: both; 
      content: ''; 
      display: table; 
     } 
    } 
} 

用法:

@include clear-fix; // prints out old-skool :before/:after with IE7/8 support

@include clear-fix(true); // prints out simple ::after method

相關問題