CSS | background属性

 

一、CSS引入方式

在HTML中引入css方式总共有三种:

  • 行内样式
  • 内接样式
  • 外接样式: 链接式、导入式

 

1. 行内样式

<body>
<div class="box" style="color:red;">日天</div>
</body>

 

2. 内接样式 

  下面的代码需要写在<title>标签下面<style>里面

<style type="text/css">    text是主文件类型(html、css、js),css是子文件类型
        /*写我们的css代码*/
        span{
            color: yellow;
        }
</style>

举例: 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        p {
            color: green;
            font-size: 20px;
        }
    </style>
</head>

<body>
<div>
    <p>我是一个段落</p>
</div>
</body>
</html>
<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        p {
            color: green;
            font-size: 20px;
        }
    </style></head><body><div>
    <p>我是一个段落</p></div></body></html>

执行输出:

 

3.外接样式

外接样式-链接式

需要写在<title>标签下面,链接css文件

举例: 

index.css

p {
    color: red;
    font-size: 20px;
}

show.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="./index.css">
</head>
<body>
<div>
    <p>我是一个段落</p>
</div>
</body>
</html>

 

外接样式-导入式 

需要写在<title>标签下面

举例: 

index.css不变,修改html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        /*导入式*/
        @import url('./index.css');
        /*第二种写法*/
        /*@import "index.css";*/
    </style>
</head>
<body>
<div>
    <p>我是一个段落</p>
</div>
</body>
</html>

在这3种样式中,行内样式优先级最高。内接样式和外接样式,根据代码从上到下执行顺序。针对同一属性,最下面的会生效。这叫样式重叠现象!

 

 

二、background属性

1. background-color

背景颜色。一般输入bgc+tab键回车就可以出来了

举例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            font-weight: bolder;
            /*单词  十六进制 rgb*/
            background-color: rgb(255,0,0);
        }
</style>
</head>
<body>
<div></div>
</body>
</html>

 

网页效果:

 

2. background-img

表示设置该元素的背景图片

举例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{
            width: 600px;
            height: 300px;
            /*背景图片*/
            background-image: url("images/zly.jpg");
        }
</style>
</head>
<body>
<div></div>
</body>
</html> 

那么发现默认的背景图片,水平方向和垂直方向都平铺

 

3. background-repeat

设置该元素平铺的方式

属性值:

描述
repeat 默认。背景图像将在垂直方向和水平方向重复。
repeat-x 背景图像将在水平方向重复。
repeat-y 背景图像将在垂直方向重复。
no-repeat 背景图像将仅显示一次。
inherit 规定应该从父元素继承 background-repeat 属性的设置。背景图片仅显示一次

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{
            width: 600px;
            height: 300px;
            /*边框*/
            border: 1px solid red;
            /*背景图片*/
            background-image: url("images/zly.jpg");
            background-repeat: no-repeat;
        }
</style>
</head>
<body>
<div></div>
</body>
</html>

 

网页效果:

 

给元素设置padding之后,发现padding的区域也会平铺背景图片。

举例: 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{
            width: 600px;
            height: 300px;
            /*边框*/
            border: 1px solid red;
            /*背景图片*/
            background-image: url("images/zly.jpg");
            padding: 100px;
        }
</style>
</head>
<body>
<div></div>
</body>
</html>

网页效果:

 

repeat应用案例

还是上面那个超链接导航栏的案例,我们给body设置平铺的图片,注意:一定找左右对称的平铺图片,才能实现我们要的效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        body{
            background-image: url("images/backdrop.jpg");
        }
        ul{
            list-style: none;
        }
        .nav{
            width: 960px;
            overflow: hidden;
            margin: 50px auto;
            background-color: purple;
            /*设置圆角*/
            border-radius: 5px;
        }
        .nav ul li{
            float: left;
            width: 160px;
            height: 40px;
            line-height: 40px;
            text-align: center;
        }
        .nav ul li a{
            width: 160px;
            height: 40px;
            display: block;
            color: white;
            font-size: 14px;
            text-decoration: none;
        }
        /*a标签除外,不继承父元素的color*/
        .nav ul li a:hover{
            background: yellow;
            color: green;
            /*添加下划线效果*/
            text-decoration: underline;
        }

    </style></head><body><div class="nav">
    <ul>
        <li>
            <a href="#">网站导航</a>
        </li>
        <li>
            <a href="#">网站导航</a>
        </li>
        <li>
            <a href="#">网站导航</a>
        </li>
        <li>
            <a href="#">网站导航</a>
        </li>
        <li>
            <a href="#">网站导航</a>
        </li>
        <li>
            <a href="#">网站导航</a>
        </li>
</ul>
</div>

</body></html> 

网页效果:

 

4. background-position

这个属性设置背景原图像(由 background-image 定义)的起始位置

属性值:

描述
  • top left
  • top center
  • top right
  • center left
  • center center
  • center right
  • bottom left
  • bottom center
  • bottom right
如果仅规定了一个关键词,那么第二个值将是"center"。默认值:0 0;这两个值必须挨在一起。

 

举例:看上面那个不重复的例子,如果需要设置图片居中,需要使用background-position方法。使用x和y坐标来定位图片。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{
            width: 600px;
            height: 300px;
            /*边框*/
            border: 1px solid red;
            /*背景图片*/
            background-image: url("images/zly.jpg");
            background-repeat: no-repeat;
            /*表示x坐标为100,y坐标为0*/
            background-position: 200px 0px;
        }
</style>
</head>
<body>
<div></div>
</body>
</html>

网页效果:

 

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta http-equiv="content-Type" charset="UTF-8">
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Title</title>
    <style>
        .box{
            width:186px;
            height: 38px;
            border: 3px solid red;
            /*background-image: url("./timg.jpg");*/
            /*background-repeat: no-repeat;*/
            /*background-position-x: -323px;*/    切图
            /*background-position-y: -270px*/
            /*精灵图技术*/
            background: url("./timg.jpg") no-repeat -323px -270px;
        }

    </style>
</head>
<body>
    <div class="box">

    </div>
</body>
</html>

5. background-attachment 

设置fixed之后,该属性固定背景图片不随浏览器的滚动而滚动

attachment  附属物; 依恋,依附;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{
            width: 1000px;
            height: 1000px;
            background-image: url("images/taobao_logo.png");
            border: 1px solid red;
            background-repeat: no-repeat;
            background-position: right left;
            /*固定背景图片*/
            background-attachment: fixed;
        }
</style>
</head>
<body>
<div></div>
</body>
</html> 

网页效果:拖动右边的进度条,logo始终展示。就好像右边烦人的小广告一样。

 

 

 

 

三、文本属性

 

介绍几个常用的。

 

1)文本对齐text-align 

 

属性值:none | center | left | right | justify
justify 两端对齐,但很少被使用,有的浏览器可能还会不支持该属性。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div {
            width: 100px;
            height: 100px;
            /*设置边框*/
            border: 1px solid red;
            text-align: center;
        }
</style>
</head>
<body>
<div>11</div>
</body>
<html>

 

网页效果:

 

 

 

 

 

2)文本首行缩进 text-indent 

 

单位建议使用em1em就是一个字  indent:缩进

 

indent    vt.  切割…使呈锯齿状; 缩进排版;

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div {
            width: 100px;
            height: 100px;
            /*设置边框*/
            border: 1px solid red;
            /*文本首行缩进*/
            text-indent: 1em;
        }
</style>
</head>
<body>
<div>林志玲 林志玲 林志玲</div>
</body>
<html>

 

网页效果:

 

 

 

3)文本修饰 text-decoration

 

  属性值: none(默认) |

 

      underline(下划线) |

 

      overline(定义文本上的一条线)  |

 

      line-through (定义穿过文本下的一条线) | 

 

      inherit(继承父元素的text-decoration属性的值。)

 

4)行高line-height

 

针对单行文本垂直居中

 

公式:行高的高度等于盒子的高度,可以使当行文本垂直居中,注意只适用单行文本。

 

 

 

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{
            width: 200px;
            height: 40px;
            border: 1px solid red;
            font-size: 18px;
            /*行高等于盒子高度,就是垂直居中*/
            line-height: 40px;
            text-align: center;
        }
</style>
</head>
<body>
<div>赵丽颖</div>
</body>
</html>

 

网页效果:

 

 

 

font-size 一定比行高小font-size 一般都是偶数,不会用奇数

 

 

 

四、字体属性

 

1)字体大小font-size

 

如果设置成inherit表示继承父元素的字体大小值。默认16px

 

 

 

2)字体粗细font-weight

 

  属性值: none(默认值,标准粗细) |

 

      bold(粗体) |

 

      bolder(更粗)| 

 

      lighter(更细) | 

 

      100~900(设置具体粗细,400等同于normal,而700等同于bold)一般用数字

 

      inherit(继承父元素字体的粗细值)

 

 

 

3)字体样式:font-style

 

  属性值: normal(默认值,正常字体)  

 

      italic(体) 

 

      oblique(倾斜字体)

 

 

 

4)字体系列font-family

 

 

 

font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif

 

 

 

 

 

 如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。如果都不支持则显示宋体。

 

 使用font-family注意几点:

 

1.网页中不是所有字体都能用

 

  因为这个字体要看用户的电脑里面装没装,比如你设置: font-family: "华文彩云"; 如果用户电脑里面没有这个字体,那么就会变成宋体。页面中,中文我们只使用: 微软雅黑、宋体、黑体。 如果页面中,需要其他的字体,那么需要切图。 英语:Arial 、 Times New Roman

 

2.为了防止用户电脑里面,没有微软雅黑这个字体。

 

  就要用英语的逗号,隔开备选字体,就是说如果用户电脑里面,没有安装微软雅黑字体,那么就是宋体:font-family: "微软雅黑","宋体"; 备选字体可以有无数个,用逗号隔开。

 

3.需要将英语字体,放在最前面

 

  这样所有的中文,就不能匹配英语字体,就自动的变为后面的中文字体: font-family: "Times New Roman","微软雅黑","宋体";

 

4.所有的中文字体,都有英语别名

 

  我们也要知道: 微软雅黑的英语别名:font-family: "Microsoft YaHei";宋体的英语别名: font-family: "SimSun"; font属性能够将font-size、line-height、font-family合三为一: font:12px/30px "Times New Roman","Microsoft YaHei","SimSun";

 

5.行高可以用百分比,表示字号的百分之多少

 

  一般来说,都是大于100%的,因为行高一定要大于字号。 font:12px/200% “宋体” 等价于 font:12px/24px “宋体”; 反过来,比如: font:16px/48px “宋体”;等价于 font:16px/300% “宋体”

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{
            width: 20em;
            height: 5em;
            border: 1px solid green;
            color: red;
            /*文本首行缩进*/
            text-indent: 1em;
            /*字体属性*/
            font-size: 20px;
            font-weight: bolder;
            /*字体要加多个,用逗号隔开。防止别人的电脑上,没有对应的字体。
            首先加载的字体为微软雅黑,如果没有,就从后面找。*/
            font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif;
        }
    </style></head><body>
    <div>韩雪,赵丽颖,宋茜</div>
</body>
<html>

 

网页效果:

 

 

 

 

 

五、颜色表示法

 

一共有三种:单词、rgb表示法、十六进制表示法

 

1) 单词

 

  red、green、blue

 

2) rgb 三原色
  光学显示器,每个像素都是由三原色的发光原件组成的,靠明亮度不同调成不同的颜色的。
  用逗号隔开,r、g、b的值,每个值的取值范围0~255,一共256个值。
  如果此项的值,是255,那么就说明是纯色
  rgb(255,0,0) 表示红色

 

  黑色:光学显示器,每个元件都不发光,黑色的。

 

  颜色可以叠加,比如黄色就是红色和绿色的叠加rgb(255,255,0);再比如,就是红、绿、蓝三种颜色的不同比例叠加。

 


3) 16进制表示法
所有用#开头的值,都是16进制的。16进制表示法,也是两位两位看,看r、g、b,但是没有逗号隔开。

#ff0000:红色
ff就是10进制的255 ,00 就是10进制的0,00就是10进制的0。所以等价于rgb(255,0,0);

 

 

 

任何一种十六进制表示法,都能够换算成为rgb表示法。也就是说,两个表示法的颜色数量一样。

 

十六进制可以简化为3位,所有#aabbcc的形式,能够简化为#abc;

 

要记住:
#000 黑
#fff 白
#f00 红
#333 灰
#222 深灰
#ccc 浅灰

posted @ 2019-08-24 11:57  PythonGirl  阅读(441)  评论(0)    收藏  举报