2017-05-19 69 views
1

這裏是我的代碼:我可以在CSS中定義<任何東西>?

.el { 
    padding-top: 20px; 
} 

@media (max-width: 979px) { 
    .el{ 
     padding: <anything already been> 10px 10px 10px; 
    } 
} 

有什麼作爲<anything already been>使用?


我是這樣做的:

@media (max-width: 979px) { 
    .el{ 
     padding-right: 10px; 
     padding-left: 10px; 
     padding-buttom: 10px; 
    } 
} 

但我只是想知道有沒有辦法做到這一點的一條線?

+6

你是什麼意思'任何事情已經' – ThisGuyHasTwoThumbs

+1

@ThisGuyHasTwoThumbs我的意思是*保持它當前的一切是*。在這種情況下,它應該是'20px'。因爲我已經初始化了'20px'。 –

+2

@MartinAJ繼承? –

回答

5

我要說的是,這是不可能的。

繼承將是足夠的替代,但這不能實現,因爲繼承統計所有4個速記屬性。你不能隨意輸入繼承來半推翻它的一部分。

此外,使用填充時,它將始終從padding轉換爲padding-toppadding-left等。這將(如@Pete所述)每次都會覆蓋原始值。

你應該和你的第二個辦法堅持:

@media (max-width: 979px) { 
    .el{ 
     padding-right: 10px; 
     padding-left: 10px; 
     padding-buttom: 10px; 
    } 
} 
+0

我看到了,謝謝,upvote –

+1

我看到'butt'om我按upvote。 –

+0

@ uom-pgregorio你必須責怪我從OP那裏複製/粘貼=)。 – Roberrrt

3

世界上沒有辦法做你想做的事情。你可以用custom properties來獲得更多的東西來達到這個目的。

例如:

.el { 
    --paddingTop: 20px; 

    padding: var(--paddingTop, 0) var(--paddingRight, 0) var(--paddingBottom, 0) var(--paddingLeft, 0); 
} 

@media (max-width: 979px) { 
    .el{ 
     --paddingRight: 10px; 
     --paddingBottom: 20px; 
     --paddingLeft: 20px; 
    } 
} 

這將是罰款1使用過的情況,但會給你太多的開銷,要做到這一點無處不海事組織。

+0

謝謝...誠實我從來沒有見過這樣的事情在CSS中。 upvote –

+1

這是相對較新的,所以如果你需要支持IE瀏覽器,那麼瀏覽器的支持是有點不確定的,但它是一個解決方案。我總是使用@ robberrrt的雖然 –

+1

好的CSS變量曾經有可怕的支持,但它似乎這是改善這些天https://caniuse.com/#search=custom%20properties – Roberrrt

相關問題