巧妙的CSS

简介:

一个界面设计优秀的网站总是更能吸引用户的目光。界面设计优秀与否还是主要看UI设计师的能力,但是要想还原设计师给出UI,那么你的CSS编写能力就至关重要。

CSS和JS一样,也在不断的发展中,随着各个浏览器对CSS3的逐渐支持,CSS能发挥的作用越来越来大。熟练的使用CSS技术能编写出优秀的界面,还能减少JS的工作量。

下面将介绍一些巧妙地使用CSS的方法。

边框和背景

半透明边框

半透明的边框一般来说直接设置边框颜色透明度就好了,但是在元素有背景颜色的情况下,背景色会延伸到边框区域,影响了边框的显示。这里可以使用background-clip来解决。


<style>
.transparent-border {
  width: 100px;
  height: 100px;
  border: 10px solid rgba(0,0,0,0.2);
  background-color: blue;
  background-clip: padding-box; // border-box | padding-box
}
</style>
<div class="transparent-border"></div> 

df0374ffd67f1077ab294672048ea460e5174aff


多重边框

边框出了可以使用border来写,还可以使用box-shadow来模拟,主要使用到属性的第四个参数,阴影的尺寸。由于box-shadow是可以写多个的,所以我们来用来做多边框的情况。注意第一层投影是在最上层,同时投影不影响布局,也不响应鼠标事件。



<style>
.multiple-border {
    width: 100px;
    height: 100px;
    margin: 20px;
    box-shadow: 0 0 0 5px #655, 0 0 0 10px deeppink;
    border-radius: 5px;
}
</style>
<div class="multiple-border"></div> 


b41251f5e233f96b783e3a86731e52647655351c

条纹背景

条纹背景可以用线性渐变来写,在每个区间都使用纯色即可。

注意下线性渐变中,如果我们把第二个色标的位置值设置为 0,那它的位置就总是会被浏览器调整为前一个色标的位置值


<style>
div {
  width: 100px;
  height: 100px;
  background: linear-gradient(#fb3 33.3%,#58a 0, #58a 66.6%, yellowgreen 0);
  background-size: 100% 45px;
  margin: 20px;
}
</style>
<div></div>

e7198144a14710a9f8808650ee1834af5cae00da

形状

椭圆

border-radius 可以单独指定水平 和垂直半径, 只要用一个斜杠( /) 分隔这两个值即可


<style>
div {
  width: 100px;
  height: 75px;
  border-radius: 100px / 75px;
  background: linear-gradient(#fb3 33.3%,#58a 0, #58a 66.6%, yellowgreen 0);
  background-size: 100% 45px;
  margin: 20px;
}
</style>
<div></div>

c04956cb70b30e1a90cbf5c3adae7a91e50df178

平行四边形

第一种方法用两个标签,第一层在X轴方向扭曲,内层在扭曲回来保证文字正常显示。


<style>
.button { display: inline-block; background-color:#fb3; transform: skewX(-45deg); }
.button > span { display: inline-block; transform: skewX(45deg); }
</style>
<a href="#yolo" class="button">
    <span>Click me</span>
</a>

第二种方法就是用到伪元素了。


<style>
.button {
    position: relative;
/* 其他的文字颜色、内边距等样式…… */
}
.button::before {
    content: ''; /* 用伪元素来生成一个矩形 */
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    z-index: -1;
    background: #58a;
    transform: skew(-45deg);
}
</style>
<a href="#yolo" class="button">
    Click me
</a>

7cfe91f7b0617c4038ef224cd9b3d7df68c58b01


菱形


<style>
.picture {
    width: 25px;
    height: 25px;
    transform: rotate(45deg);
    overflow: hidden;
    margin: 20px;
    background: #58a;
}
.picture > span {
    display: inline-block;
    transform: rotate(-45deg);
}
</style>
<div class="picture">
    <span>Pic</span>
</div>

a71b4eb3af16badf0f72c17fe0dfdbd3074078e1

梯形Tab

梯形也是可以用CSS3实现,原理是利用CSS3的3D效果,把矩形往“后面”倒,形成梯形。

效果

824ae2bb407274ab0e5a3b693e9125df94890878

视觉效果

单侧投影

blur 4px: 这在本质上表示在阴影边缘发生阴影色和纯透明色之间的颜色过渡长度近似于模糊半径的两倍(比如在这里是 8px)

配合负值的阴影大小就可以实现单侧投影。


box-shadow: 0 4px 4px -4px black;

邻边投影


box-shadow: 3px 3px 6px -3px black;

双侧投影


box-shadow: 5px 0 5px -5px black,-5px 0 5px -5px black;

不规则投影



filter: drop-shadow(2px 2px 4px rgba(0,0,0,.5));

cdecd37763f6f5df77e954697e775ee54a859959

总结

CSS的功能还是很强大的,在不断学习JS的同时,不能忘了CSS技能的提升。上面的技巧主要来自《CSS揭秘》



原文发布时间为:2018年06月17日
原文作者: wuzhengyan2015
本文来源:  掘金  如需转载请联系原作者





相关文章
|
6月前
|
前端开发 搜索推荐
采用CSS的好处
采用CSS的好处。
37 1
|
6天前
|
编解码 前端开发 UED
如何巧妙利用CSS3,打造炫酷视觉效果
在使用CSS3打造炫酷视觉效果时,要注意适度使用,避免过度设计导致页面过于复杂和混乱,影响用户的阅读和浏览体验。同时,要确保所使用的效果在不同的浏览器和设备上具有良好的兼容性,以提供一致的视觉效果。
10 1
|
5月前
|
前端开发
CSS基础之伪类选择器(如果想知道CSS的伪类选择器知识点,那么只看这一篇就足够了!)
CSS基础之伪类选择器(如果想知道CSS的伪类选择器知识点,那么只看这一篇就足够了!)
|
4月前
|
前端开发 JavaScript
前端 CSS 经典:CSS 原子化
前端 CSS 经典:CSS 原子化
62 0
|
4月前
|
前端开发
前端 CSS 经典:好用的 CSS 选择器
前端 CSS 经典:好用的 CSS 选择器
28 0
|
前端开发
【CSS】5分钟带你彻底搞懂 W3C & IE 盒模型!🔥🔥
前言 大家好,我是HoMeTown,CSS是作为前端必有技术栈之一,但是有很多同学其实对CSS的盒模型都不是很了解,今天想聊一下Css盒子模型。
95 0
|
前端开发 开发者
教你5分钟搞懂css里面的盒模型
教你5分钟搞懂css里面的盒模型 什么是盒模型 在html中,我们写的标签,很多都是有盒模型的,也就是在css里面,我们为这些标签设置样式的时候,实际上就是为这些盒子设置样式。
|
前端开发 JavaScript API
【基础巩固📔】- 带你搞懂CSS盒模型
它其实就是我们这篇文章的主角-盒模型。由这张图可以看出,盒模型包含了`margin`、`border`、`padding`、`content`这四个部分。 >所有HTML元素都可以看作盒子,而我们平时就是盒子的搬运工。 ## 介绍标准模型和IE模型,以及他们的区别🍈 它俩的**区别就一个,计算宽度(高度)的方式不一样。**
|
Web App开发 前端开发 算法
|
前端开发 算法
CSS——CSS 三大特性(理论)
CSS——CSS 三大特性(理论)
143 0
CSS——CSS 三大特性(理论)