首頁  >  文章  >  web前端  >  實戰中使用CSS技巧分享

實戰中使用CSS技巧分享

php中世界最好的语言
php中世界最好的语言原創
2018-05-24 16:01:411426瀏覽

這次帶給大家實戰使用CSS技巧分享,實戰中使用CSS的注意事項有哪些,下面就是實戰案例,一起來看一下。

建立剪切動畫

對於剪切動畫,使用clip-path代替width/height,避免DOM重排導致效能過低。

.animate {
  width: 200px;
  height: 200px;
  background: #000;
  animation: 1s clip;
}
@keyframes clip {
  0% {
      clip-path: inset(0 0 0 0);
  }
  100% {
      clip-path: inset(0 100% 100% 0);
  }
}

clip-path也能用來進行其他規則/不規則圖形的剪切

.clip {
  clip-path: polygon(0 100%, 50% 0, 100% 100%, 0 30%, 100% 30%); /* 多边形 */
  clip-path: circle(30px at 35px 35px); /* 圆形 */
  clip-path: ellipse(30px 25px at 35px 35px); /* 椭圆 */
}

優化動畫效能

除了使用transform3d開啟gpu加速,還可以使用will-change強制gpu加速優化動畫效能

.animate {
  width: 200px;
  height: 200px;
  background: #000;
  animation: 1s clip;
  will-change: clip-path;
}
@keyframes clip {
  0% {
      clip-path: inset(0 0 0 0);
  }
  100% {
      clip-path: inset(0 100% 100% 0);
  }
}

實現長寬比

使用padding模擬,然後子元素使用絕對定位

/* 1:1 */
.container {
  width: 200px;
}
.container:after {
  display: block;
  content: ' ';
  padding-top: 100%;
}
/* 16:9 */
.container {
  width: 200px;
}
.container:after {
  display: block;
  content: ' ';
  padding-top: calc(100% * 9 / 16);
}

垂直居中

我們常用的方式:

  • dislay: inline-block

  • top: 50% transform: tranlsateY(- 50%)

  • display: flex

#其餘還有padding上下撐高display: table <a href="http://www.php.cn/wiki/902.html" target="_blank">position</a> margin: auto絕對定位margin等等,這些屬於不常用、特殊場景才能用、CSS3之前的hack方式,CSS3之後就不必使用這些來實現垂直居中,就不多說了。

其中display: flex屬於萬金油,大多數場景可以直接用它,但還是有些特殊的場景不能用:

  1. 子元素需要文字截斷,為了相容4.X的Android瀏覽器,必須使用其他方式(一般是transform)

  2. 子元素需要多行佈局,4.x的Android不支援flex -wrap,不能多行佈局

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

前端專案中初始化專案結構

#使用js變數作用域遇到的bug

#

以上是實戰中使用CSS技巧分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn