CSS 阴影 轮廓 渐变详解

html-css0145

CSS 阴影 轮廓 渐变详解,第1张

轮廓是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用, 比如

实现线性渐变,你至少需要定义两种颜色的结点,这两种结点就是你想平稳过渡的颜色,即:其中一种颜色结点为起点,另一种颜色结点为结束点

同时也可以定义渐变的方向,是从上到下渐变,还是从左至右渐变,或者从右至左渐变,默认情况下是从上至下渐变的

当然也可以对角渐变,如:从左上角到右下角

创建重复的线性渐变

to left:设置渐变为从右到左。相当于: 270deg

to right:设置渐变从左到右。相当于: 90deg

to top:设置渐变从下到上。相当于: 0deg

to bottom:设置渐变从上到下。相当于: 180deg (这是默认值,等同于留空不写)

如果还想更多地控制渐变方向,可以改变渐变的角度

也可以在渐变中使用透明度, 所以我们得使用 rgba() 函数来定义颜色结点。 rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明

径向渐变是由中心向外渐变的。可以定义它中心 (默认渐变是中心是 center ) 、形状(圆形或椭圆形)、大小等

其中,circle 表示圆形,ellipse 表示椭圆形。默认值是 ellipse

给文字 color 添加渐变效果的话, 可以这样写:

<body>

<div style=" width:50pxheight:50pxbackground-color:#F00border-radius:25px">

<span style="height:50pxline-height:50pxdisplay:blockcolor:#FFFtext-align:center">4</span>

</div>

</body>

首先我们需要分析一下整个牌的构造,以普通数字牌1为例,共可分为5个部分,分别是1、外框2、颜色3、上下角标数字4、里面的白色椭圆5、中间的大数字

对应不同的部分,我们将其分解为5部分的html代码并为其添加class,1、卡牌背景2、卡牌颜色(由于布局相同只有颜色不同,故将颜色抽出成为单独的类)3、上下角标数字4、白色椭圆背景5、大数字

以下均采用代码和效果图对比的方式展示效果

布好局之后,为其添加样式。首先新建css样式表,并将其关联至html文件

首先写背景的样式,按牌的比例写出宽高,留白使用padding来写,css3的新特性我们使用了如图的圆角和阴影,为牌制造立体的感觉

然后来写牌的背景颜色,Uno牌一共有黑红黄绿蓝5种颜色,因此我们只需要事先定义好这五种颜色,之后将其对应的类名添加进来就可以了。

另外,因为上下角标的数字需要使用绝对定位,因此它们的父级元素就需要定义为相对定位

下面来写上下角标的数字,由于这里使用的是em行内元素标签,因此设置宽高的时候要记得display:inline-block。

绝对定位到需要的位置,然后将右下角的数字使用css3的旋转函数180度旋转,就可以制造出倒过来的数字了

中间的白色椭圆要怎么画呢,我们知道border-radius的值与宽高相等可以画出圆形,那么当它的值为宽的一半比高的一半时,则可以画出椭圆形,这时我们再将它旋转到合适的角度,就可以得到想要的椭圆

最后就是中间的数字,由于它是椭圆形的子元素,因此椭圆形旋转的时候,它也跟着一起旋转,要想让它摆在一个比较正的位置,还应将它旋转回来。并为它挑选一个合适的字体

至此,我们的普通数字牌已经写好了

圆角和阴影本身就是CSS3的属性 如果你在支持CSS3的浏览器上直接用圆角属性就可以了 然后在加阴影就不会出现这样的问题

而不支持CSS3属性的浏览器你圆角是用图片模拟出来的 那么他也没有阴影的属性 所以也不会出现这样问题

所以你的问题就是给弄混了

在支持CSS3的浏览器上用自身的属性

在不支持CSS3的浏览器上用模拟的方法

还有在IE系列下你可以下一个CSS3的.HTC文件 他用微软自带的VML语法模拟出CSS3效果 具体的你可以百度