我正在嘗試使用盡可能低的效率。現在我想更換一個佔位符的顏色,我通常在CSS會做這樣的:嵌套供應商前綴更少選擇器
input::-webkit-input-placeholder /* WebKit, Blink, Edge */
{
color: #000000;
}
input:-moz-placeholder /* Mozilla Firefox 4 to 18 */
{
color: #000000;
}
input::-moz-placeholder /* Mozilla Firefox 19+ */
{
color: #000000;
}
input:-ms-input-placeholder /* Internet Explorer 10-11 */
{
color: #000000;
}
現在我想用嵌套選擇欠我可以使用:
input{
&::-webkit-input-placeholder, /* WebKit, Blink, Edge */
&:-moz-placeholder, /* Mozilla Firefox 4 to 18 */
&::-moz-placeholder, /* Mozilla Firefox 19+ */
&:-ms-input-placeholder /* Internet Explorer 10-11 */
{
color: #000000;
}
}
不幸的是,做不像我預期的那樣工作。當我只使用一個選擇器(沒有逗號)時,它可以正常工作,但這意味着我仍然必須爲每個前綴創建四個嵌套選擇器,這是無效的。我怎樣才能在較少可能的行中實現第一個CSS塊的效果?
注意:完整的代碼塊是更廣泛的,有更多的嵌套規則。當然,對於這個例子,我可以用CSS來逗逗所有的選擇器 - 但我希望它可以在嵌套的Less-selector中工作。
我認爲如果您使用某種類型的預處理器來減少代碼,這些供應商前綴可以自動添加。如果不是這是一個非常有趣的問題。 +1 –
我剛剛檢查autoprefixer不會自動添加這些前綴。我只是嘗試了你的LESS代碼;它似乎產生正確的輸出,這是你所期望的。 –
@李新陽感謝您的回覆。我進一步深入研究,它確實似乎產生了期望的輸出。只有瀏覽器纔會解析正確的顏色,直到選擇器被單獨定義爲止。所以問題似乎是在瀏覽器中,而不是在LESS語法不正確。 – BasC