python 之 前端开发(CSS三大特性、字体属性、文本属性、背景属性)

11.38 css三大特性

11.381 继承性
1、定义:给某一个元素设置一些属性,该元素的后代也可以使用,这个我们就称之为继承性

2、注意:
   1、只有以color、font-、text-、line-开头的属性才可以继承
   2、a标签的文字颜色和下划线是不能继承别人的
   3、h标签的文字大小是不能继承别人的,会改变,但是会在原来字体大小的基础上改变
   ps:打开浏览器审查元素可以看到一些inherited from...的属性
3、应用场景:
   通常基于继承性统一设置网页的文字颜色,字体,文字大小等样式
11.382 层叠性
定义:CSS全称:Cascading StyleSheet层叠样式表,层叠性指的就是CSS处理冲突的一种能力,即如果有多个选择器选中了同一个标签那么会有覆盖效果

注意:
1、层叠性只有在多个选择器选中了同一个标签,然后设置了相同的属性,才会发生层叠性
11.383 优先级
1、定义:当多个选择器选中同一个标签,并且给同一个标签设置相同的属性时,如何层叠就由优先级来确定
2、优先级
   整体优先级从高到底:行内样式>嵌入样式>外部样式
1、大前提:直接选中 > 间接选中(即继承而来的)
2、如果都是间接选中,那么离目标标签比较近的优先级高,就近原则
3、如果都是直接选中,并且都是同类型的选择器,那么写在后面的优先级高
4、如果都是直接选中,并且是不同类型的选择器,那么就会按照选择器的优先级来层叠
   #内联>id > 类 > 标签 > 通配符(也算直接选中) > 继承 > 浏览器默认(即没有设置任何属性)
5、优先级之!important
!important方式来强制指定的属性的优先级提升为最高,但是不推荐使用。因为大量使用!important的代码是无法维护的。
 注意:
   1!important只能用于直接选中,不能用于间接选中
   2!important只能用于提升被指定的属性的优先级,其他属性的优先级不会被提升
   3!important必须写在属性值分号的前面

11.39 字体属性

1、font-weight:文字粗细(字重)

normal  默认值,标准粗细
bord    粗体
border  更粗
lighter 更细
100~900 设置具体粗细,400等同于normal,而700等同于bold
inherit 继承父元素字体的粗细值

2、font-style:文字风格

normal 正常,默认就是正常
 italic 倾斜 

3、font-size:文字大小

一般是12px或13px或14px
注意:
1、通过font-size设置文字大小一定要带单位,即一定要写px
2、如果设置成inherit表示继承父元素的字体大小值。

4、font-family:文字字体

font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif #按照顺序依次选取用户可用的字体
常见字体:
serif 衬线字体
sans-serif 非衬线字体
中文:宋体,微软雅黑,黑体

注意: 1、设置的字体必须是用户电脑里已经安装的字体,浏览器会使用它可识别的第一个值 2、如果取值为中文,需要用单或双引号扩起来

5、文字属性简写

font-weight: bolder;
font-style: italic;
font-size: 50px;
font-family: 'serif','微软雅黑';
简写为:
font: bolder italic 50px 'serif','微软雅黑'; 

6、color:文字颜色

 格式描述
rgb color:rgb(255,0,0); 红色:rgb(255,0,0) 绿色:rgb(0,255,0) 蓝色:rgb(0,0,255) 黑色:rgb(0,0,0) # 所有都不亮 白色:rgb(255,255,255) # 所有都最亮 灰色:只要让红色/绿色/蓝色的值都一样就是灰色而且三个值越小越偏黑色越大越偏白色
rgba color:rgba(255,0,0,0.1); rgba到css3中才推出,比起rgb多了一个a,a代表透明度 a取值0-1,取值越小,越透明
十六进制 color: #FF0000; #FF0000 其中FF代表R,00代表G,00代表B

11.310 文本属性

1、text-align:规定元素中的文本的水平对齐方式

left左边对齐 默认值
right 右对齐
center 居中对齐
justify 两端对齐

2、text-decoration:文本装饰

none默认,定义标准的文本,通常用来去掉a标签的下划线
underline 定义文本下的一条线。
overline 定义文本上的一条线。
line-through 定义穿过文本下的一条线。
inherit 继承父元素的text-decoration属性的值。

3、text-indent:首行缩进

#将段落的第一行缩进 32像素,16px;=1em;
p {text-indent: 32px;}
p {text-indent: 2em;}

4、line-height:行高

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>
    <style type="text/css">
        p {
            width: 500px;
            height: 200px;
            text-align: center;
            line-height: 200px;
        }
    </style>
</head>
<body>
<div>
    <p>hello英雄不问出处,流氓不论岁数</p>
</div>
</body>
</html>

11.311 背景属性

注意:没有宽高的标签,即便设置背景也无法显示,即要求标签是块级标签或行内块级标签

background-color设置标签的背景颜色的 rgb(0,255,0); rgba(0,255,0,0.1); #00ffff;
background-image 设置标签的背景图片 background-image: url("images/2.jpg");注意:如果图片的大小小于标签的大小,那么会自动在水平和垂直方向平铺和填充
background-size 设置标签的背景图片的宽、高 background-size: 300px 300px; background-size: 100% 100%;
inherit 设置从父元素继承background属性值 以上背景属性的值均可以设置为inherit,代表从父元素继承background属性
     

background-repeat:设置标签的背景图片的平铺方式

background-repeat: repeat; #默认值,在垂直和水平方向都重复
background-repeat: no-repeat; #不重复,背景图片将仅显示一次
background-repeat: repeat-x; #背景图片将在水平方向平铺
background-repeat: repeat-y; #背景图片将在垂直方向平铺
应用:可以在服务端将一个大图片截成小图片,然后在客户端基于平铺属性将小图重复这样用户就以为是一张大图,如此,既节省了流量提升了速度,又不影响用户访问例如很多网站的导航条都是用这种手法制作的

background-attachment:设置标签的背景图片在标签中固定或随着页面滚动而滚动

background-attachment: scroll; #默认值,背景图片会随着滚动条的滚动而滚动
background-attachment: fixed; #不会随着滚动条的滚动而滚动`

background-position

前端的坐标系:图片默认都是在盒子的左上角,background-position属性,就是专门用于控制背景图片的位置
background-position:水平方向的值,垂直方向的值
1、具体的方位名词 水平方向:left,center,right 垂直方向:top,center,bottom  
#如果只设置了一个关键词,那么第二个值就是"center"
2、百分比   第一个值是水平位置,第二个值是垂直位置。  左上角是 0% 0%。右下角是 100% 100%。  
#如果只设置了一个值,另一个值就是50%。
3、具体的像素 第一个值是水平位置,第二个值是垂直位置。  左上角是 0 0  单位是像素 (0px 0px) 或任何其他的 CSS 单位。  
#如果只设置了一个值,另一个值就是50%。可以混合使用%和position值。

1、背景属性缩写

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>
    <style type="text/css">
        div {
            width: 500px;
            height: 500px;
            /*background-color: red;*/
            /*background-image: url("https://images.jpg");*/
            /*background-repeat: no-repeat;*/
            /*background-position: right bottom;*/
            /*background-size: 100px 100px;*/
            background: red url("https://images.jpg") no-repeat right bottom/100px 100px;
        }                                                               #背景属性缩写
    </style>
</head>
<body>
<div></div>
</body>
</html>

2、背景图片和插入图片的区别

1、背景图片仅仅只是一个装饰,不会占用位置,插入图片会占用位置 2、背景图片有定位属性,可以很方便地控制图片的位置,而插入图片则不可以 3、插入图片语义比背景图片的语义要强,所以在企业开发中如果你的图片想被搜索引擎收录,那么推荐使用插入图片

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>
    <style type="text/css">
        .box1 {
            width: 200px;
            height: 200px;
            background-color: red;
            background-image: url("https://images.jpg");
            background-repeat: no-repeat;
            background-position: right bottom;
        }
        .box2{
            width: 300px;
            height: 300px;
            background-color: green;
        }
    </style>
</head>
<body>
<div class="box1">
    1111111111111
</div>
<div class="box2">
    22222222222222
    <img src="https://images.jpg" alt="">
</div>
</body>
</html>
11.3111 rgba与opacity

rgba只能给背景设置透明度,不能给标签、标签的子标签设置透明度,opacity可以给整个标签设置透明度,包括标签的子标签以及标签里的内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .c1 {
            width: 200px;
            height: 200px;
            background-color: rgba(0,0,0,0.65);#只能给背景设置透明度
            
            #
            #opacity: 0.65;                   改变整个标签的透明度
        }
    </style>
</head>
<body>
<div class="c1">我是我啊啊啊啊</div>
</body>
</html>

如果想给背景图片设置透明度,则必须使用opacity,因为背景图片不能与背景颜色同时使用,如果同时使用,则背景颜色一直被背景图片覆盖,背景颜色不显示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .c1 {
            height: 800px;
            background-image: url("https://images.jpg");
            background-size:300px auto;
            opacity: 0.55;              #改变整个标签的透明度
        }
    </style>
</head>
<body>
<div class="c1"></div>
</body>
</html>
posted @ 2019-08-14 22:05  small_white-  阅读(1778)  评论(0编辑  收藏  举报