自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用這些不太常用的 CSS 屬性,讓我在前端布局效率上,又提高了一個(gè)層次!

開(kāi)發(fā) 前端
有很多CSS屬性,有些人不了解,或者他們了解它們,但是忘記在需要時(shí)使用它們。其實(shí),有時(shí)候我們用 JavaScript 來(lái)實(shí)某些交互,CSS 一個(gè)屬性就能搞定了,這可以大大節(jié)約我們編碼的時(shí)間。

有很多CSS屬性,有些人不了解,或者他們了解它們,但是忘記在需要時(shí)使用它們。其實(shí),有時(shí)候我們用 JavaScript 來(lái)實(shí)某些交互,CSS 一個(gè)屬性就能搞定了,這可以大大節(jié)約我們編碼的時(shí)間。

作為前端開(kāi)發(fā)人員,我們經(jīng)常會(huì)遇到這樣的事情。所以我問(wèn)自己,為什么不搞篇文章列出所有那些較少使用但既有用又有趣的 CSS 屬性?

在本文中,我將介紹一些不一樣的CSS屬性,希望能給你帶來(lái)點(diǎn)新鮮感,廢話不多說(shuō),讓我們開(kāi)始吧。

在CSS網(wǎng)格中使用Place-Items

 

我們只需使用兩行 CSS 代碼就可以將元素水平和垂直居中。

HTML

  1. <div class="hero"
  2.     <div class="hero-wrapper"
  3.         <h2>CSS is awesome</h2> 
  4.         <p>Yes, this is a hero section made for fun.</p> 
  5.         <a href="#">See more</a> 
  6.     </div> 
  7. </div> 

 

CSS

  1. .hero { 
  2.     display: grid; 
  3.     place-items: center; 

place-items是將justify-items和align-items結(jié)合在一起的簡(jiǎn)寫(xiě)屬性。上面的代碼等同于下面代碼:

  1. .hero { 
  2.     display: grid; 
  3.     justify-items: center; 
  4.     align-items: center; 

你可能想知道,這是怎么回事? 我們來(lái)解釋一下。當(dāng)使用place-items時(shí),它將應(yīng)用于網(wǎng)格中的每個(gè)單元格,也就是說(shuō)單元格的內(nèi)容都會(huì)居中。如果我們多增加幾個(gè)單元格就會(huì)很清晰明了:

  1. .hero { 
  2.     display: grid; 
  3.     grid-template-columns: 1fr 1fr; 
  4.     place-items: center; 

 

Flexbox 與 margin 的配合

 

與flexbox 結(jié)合使用,margin: auto 可以非常輕松地將 flex 項(xiàng)目水平和垂直居中。

html

  1. <div class="parent"
  2.     <div class="child"></div> 
  3. </div> 

 

 

 

css

  1. .parent { 
  2.     width: 300px; 
  3.     height: 200px; 
  4.     background: #ccc; 
  5.     display: flex; 
  6.  
  7. .child { 
  8.     width: 50px; 
  9.     height: 50px; 
  10.     background: #000; 
  11.     margin: auto; 

看起來(lái)有點(diǎn)酷 😎

列表的 marker 屬性

 

這前,我還不知道每個(gè)li項(xiàng)旁邊的默認(rèn)小圓圈稱(chēng)為marker。在我知道::marker偽元素之前,如果要重置小圓圈列表樣式,我們一般使用偽類(lèi)::before或::after偽元素:

  1. ul { 
  2.     list-style: none; 
  3.     padding: 0; 
  4.  
  5. li { 
  6.     color: #222; 
  7.  
  8. li::before { 
  9.     content: "•"
  10.     color: #ccc; 
  11.     margin-right: 0.5em; 

如上所示<li>顏色是#222,而偽元素::before是#ccc。如果<li>和::before具有相同的顏色,那么小圓圈默認(rèn)顏色就是 li 的顏色,因此根本不需要偽元素。

我們來(lái)看一種更好的方法:

  1. li { 
  2.     color: #222; 
  3.  
  4. li::marker { 
  5.     color: #ccc; 

比起上面?zhèn)晤?lèi)的方式,這簡(jiǎn)直不要太爽!

text-align 屬性

隨著CSS flexbox和 grid 的日益普及,初學(xué)者一般也是使用它們來(lái)居中文本,而不是使用text-align屬性,但是,舊方法仍然有效。

使用text-align:center 也可以快速解決問(wèn)題,考慮以下示例。

 

如果僅內(nèi)容需要居中,不一定非要使用flexbox或grid,使用text-align反而會(huì)更簡(jiǎn)單。

display: inline-Flex 屬性

 

當(dāng)我們需要以為內(nèi)聯(lián)的方式顯示徽章列表,并且每個(gè)徽章都應(yīng)該是一個(gè)flexbox元素,這時(shí)就需要 inline-flex 出場(chǎng)了。

HTML

  1. <span class="badge"><svg></svg></span> 
  2. <span class="badge"><svg></svg></span> 
  3. <span class="badge"><svg></svg></span> 
  4. <span class="badge"><svg></svg></span> 
  5. .badge { 
  6.     display: inline-flex; /* where the magic happens */ 
  7.     justify-content: center; 
  8.     align-items: center; 

 

CSS 的columns 屬性

column-rule 屬性是一種布局方法,可以將元素劃分為列。一個(gè)常見(jiàn)的用例是將段落文本內(nèi)容分為兩行。但是,最不常見(jiàn)的是我們可以在列之間添加邊框。我從是 Manuel Matuzovic的文章中學(xué)到了這一技巧。😍

  1. p { 
  2.     columns: 3; 
  3.     column-rule: solid 2px #222; 

column-rule屬性名稱(chēng)可能不能反映其用途,但可以將其想象為類(lèi)似border-right作用。

background-repeat: round

 

我最近從Addy Osmani的一條推文中了解了這種價(jià)值。background-repeat有一個(gè)值,可以防止背景裁剪。

  1. .element { 
  2.  background-size: contain; 
  3.  background-repeat: round; 

太神奇了,是不是 😲

object-fit 屬性


 

 

object-fit屬性是相當(dāng)神奇且有用的。當(dāng)我第一次了解它時(shí),它改變了很多事情,使我作為前端開(kāi)發(fā)人員的生活更加輕松。最近,我正在研究顯示徽標(biāo)網(wǎng)格的部分。由于徽標(biāo)大小不一致,因此有時(shí)很難做到這一點(diǎn)。其中一些具有水平形狀,一些具有垂直形狀。😒😵

通過(guò)使用object-fit:contain,我可以控制徽標(biāo)的width和height,并強(qiáng)制將圖像包含在定義的寬度和高度中。😱😱

HTML

  1. <ul class="brands"
  2.     <li class="brands__item"
  3.         <a href="#"
  4.             <img src="img/logo.png" alt=""
  5.         </a> 
  6.     </li> 
  7.     <li> <!-- other logos --> </li> 
  8. </ul> 

css

  1. img { 
  2.     width: 130px; 
  3.     height: 75px; 
  4.     object-fit: contain; 

通過(guò)定義width和height,強(qiáng)制限定圖像的大小,這是一個(gè)巨大的好處。更好的是,我們可以將以上內(nèi)容包裝在@supports中,以避免在不支持對(duì)象適配的瀏覽器中拉伸徽標(biāo)圖像。

  1. @supports (object-fit: contain) { 
  2.   img { 
  3.     object-fit: contain; 
  4.     height: 75px; 
  5.   } 

作者:Ahmad shaded 譯者:前端小智 來(lái)源:sitepoint

 

原文:https://ishadeed.com/article/common-css/

本文轉(zhuǎn)載自微信公眾號(hào)「大遷世界」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系大遷世界公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 大遷世界
相關(guān)推薦

2019-06-21 08:39:23

SQLmysql索引

2021-12-08 12:50:39

代碼MyBatisJava

2012-05-02 12:39:31

無(wú)線網(wǎng)絡(luò)多跳無(wú)線網(wǎng)絡(luò)數(shù)據(jù)傳輸

2012-05-02 11:09:38

無(wú)線網(wǎng)絡(luò)數(shù)據(jù)傳輸

2020-04-20 14:50:02

前端技巧優(yōu)化

2020-07-13 13:00:24

CSS變量技巧

2021-07-28 14:35:09

代碼進(jìn)度條前端

2024-08-07 08:51:20

Go優(yōu)化開(kāi)發(fā)

2019-12-10 09:47:51

IaaS云計(jì)算物聯(lián)網(wǎng)

2020-08-28 10:22:26

前端布局效率

2023-11-22 08:26:03

HutoolJava工具集

2020-06-11 08:05:47

nginx線程池數(shù)據(jù)

2024-05-11 09:24:15

性能Go團(tuán)隊(duì)

2020-08-21 10:59:10

微軟服務(wù)器運(yùn)維

2020-06-12 14:44:06

線程池模式nginx

2023-12-26 17:18:13

darktable

2024-02-07 13:37:39

AWS系統(tǒng)應(yīng)用程序

2024-10-07 09:26:18

2020-10-10 11:35:10

IBMProject DebAI
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)