51-Web基础-CSS

1、CSS基本概念 

  层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。

编写CSS样式:

  • 在标签中用style编写(内联样式);
  • 在head中用style编写(内部样式表);

  当同一个 HTML 元素被不止一个样式定义时,内联样式(在 HTML 元素内部)拥有最高的优先权,接着是<head>标签中的样式声明,再是外部样式表(通过link标签引入的)中的样式声明,最后浏览器中的样式声明(缺省值)。

2、CSS选择器

  2.1 派生选择器

    派生选择器允许你根据文档的上下文关系来确定某个标签的样式,以达到使标记更加简洁的目的。

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5         li strong {
 6                     font-style: italic;
 7                     font-weight: normal;
 8                     }
 9     </style>
10 </head>
11 <body>
12     <p>
13         <strong>
14             我是粗体字,不是斜体字,因为我不在列表当中,所以这个规则对我不起作用
15         </strong>
16     </p>
17     <ol>
18         <li>
19             <strong>
20                 我是斜体字。这是因为 strong 元素位于 li 元素内。
21             </strong>
22         </li>
23     <li>我是正常的字体。</li>
24     </ol>
25 </body>

  2.2 ID选择器

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。id 选择器以 "#" 来定义。

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5         #i1{
 6             background-color: indianred;
 7             height: 40px;
 8         }
 9         #d2{
10             background-color: aquamarine;
11             height: 40px;
12         }
13         #i3{
14             background-color: bisque;
15             height: 40px;
16         }
17     </style>
18 </head>
19 <body>
20     <div id="i1">1</div>
21     <span id="d2">2</span>
22     <div id="i3">3</div>
23 </body>

  

  2.3 类选择器

    在 CSS 中,类选择器以一个点号显示:

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5         .c1{
 6             background-color: indianred;
 7             height: 40px;
 8         }
 9         .c2{
10             background-color: aquamarine;
11             height: 40px;
12         }
13         .c3{
14             background-color: bisque;
15             height: 40px;
16         }
17     </style>
18 </head>
19 <body>
20     <div class="c1">1</div>
21     <span class="c2">2</span>
22     <div class="c3">3</div>
23 </body>

    类名的第一个字符不能使用数字!

 

2.4 标签选择器

     对应的标签才会应用样式。

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5         div{
 6             background-color: bisque;
 7             color: red;
 8         }  /*设置所有div标签的样式*/
 9         span{
10             background-color: red;
11             color: black;
12         }  /*设置所有span标签的样式*/
13     </style>
14 </head>
15 <body>
16     <div id="i1">1</div>
17     <span id="d2">
18         2
19         <div>夹在span中的div也会应用样式</div>
20     </span>
21     <div id="i3">3</div>
22 </body>

  2.5 层级选择器

层级间用空格符号分隔,最底层的标签才会被应用。

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5         #i1 div{
 6             background-color: aquamarine;
 7             color: red;
 8         }  /*设置i1下div标签的样式*/
 9 
10         span div{
11             background-color: bisque;
12             color: red;
13         }  /*设置span标签下的div标签的样式*/
14         .c1 div{
15             background-color: olivedrab;
16             color: red;
17         }  /*设置c1下div标签的样式*/
18         .c2 div span{
19             background-color: sienna;
20             color: black;
21         }  /*c2下的div下的span标签的样式*/
22     </style>
23 </head>
24 <body>
25     <div id="i1">
26         1
27         <div >夹在id=i1的div标签下的div标签才会应用样式</div>
28     </div>
29     <div id="i2">
30         1
31         <div >夹在id=i2的div标签下的div标签不会应用样式</div>
32     </div>
33     <span>
34         2
35         <div>夹在span中的div才会应用样式</div>
36     </span>
37     <div class="c1">
38         3
39         <div>夹在class=c1的div标签下的div标签才会应用样式</div>
40     </div>
41     <div class="c2">
42         3
43         <div>夹在class=c2的div标签下的div标签不会应用样式</div>
44     </div>
45     <div class="c2">
46         3
47         <div>
48             夹在class=c2的div标签下的div标签不会应用样式
49             <span>
50                 夹在class=c2下的div标签下的div标签下的span标签会应用样式
51             </span>
52         </div>
53     </div>
54 </body>

  2.6 组合选择器

    每个标签都会应用样式。

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5     #i1,#i2,#i3{
 6             background-color: indianred;
 7             height: 40px;
 8         }
 9     .c1,.c2,.c3{
10             background-color: aquamarine;
11             height: 40px;
12     }
13     </style>
14 </head>
15 <body>
16     <div id="i1">1</div>
17     <span id="i2">2</span>
18     <div id="i3">3</div>
19     <div class="c1">1</div>
20     <span class="c2">2</span>
21     <div class="c3">3</div>
22 </body>

2.7 属性选择器

  属性选择器可以根据元素的属性及属性值来选择元素。

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5         input[type="text"]{width: 100px; height: 200px;}  /*input标签下type属性=text的会应用此样式*/
 6         input[n="druid"]{width: 150px; height: 250px;}  /*input标签下n属性=druid的会应用此样式*/
 7         .c1[type="password"]{width: 200px; height: 300px;}  /*c1下属性type属性=password的会应用此样式*/
 8         a[href][title]{color: red; font-weight: bold;}  /*同时具备href和title属性的a标签才会应用此样式 */
 9     </style>
10 </head>
11 <body>
12     <input type="text" />  <!-- 会应用样式1 -->
13     <input type="password" n="druid" />  <!-- 会应用样式2 -->
14     <input class="c1" type="password" />  <!-- 会应用样式3 -->
15     <input class="c1" />  <!-- 不会应用样式 -->
16     <input type="password" />  <!-- 不会应用样式 -->
17     <h2>同时有title和href属性的a标签才会应用样式</h2>
18     <a title="百度" href="http://www.baidu.com">百度</a>
19     <h2>如果不同时都具备title和href属性的a标签则不能应用样式</h2>
20     <a href="http://www.baidu.com">百度</a>
21 </body>

3、CSS常用属性设置

  • height: 设置高度,单位可以是像素和百分比

  • 设置宽度,单位可以是像素和百分比

  • border: solid orangered; 设置边界颜色

  • color: 设置字体颜色

  • font-size: 设置字体大小

  • text-align: center; 设置水平方向居中

  • line-height: 100px; 根据标签高度来确定文字垂直方向的位置

4、CSS浮动

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5         .c1{
 6             background-color: orangered;
 7             width: 20%;
 8             float: left;
 9         }
10         .c2{
11             background-color: orange;
12             width: 80%;
13             float: left;
14         }
15         .c3{
16             background-color: rosybrown;
17             width: 80%;
18             float: right;
19         }
20         .c4{
21             background-color: silver;
22             width: 90%;
23             float: left;
24         }
25         .c5{
26             background-color: palegreen;
27             width: 90%;
28             float: right;
29         }
30     </style>
31 </head>
32 <body>
33     <div class="c1">1</div>
34     <div class="c2">2</div>
35     <div class="c1">1</div>
36     <div class="c3">3</div>
37     <div class="c1">1</div>
38     <div class="c4">4</div>  <!-- 超过100%则换行显示 -->
39     <div class="c1">1</div>
40     <div class="c5">5</div>  <!-- 超过100%则换行显示 -->
 41 </body>

   样式如下,且可以看出:左漂浮和右漂浮之和不超过100%时,双左漂浮和左漂浮、右漂浮的效果一样!

   

如果子div漂浮,那么就会脱离父div,如下例所示:

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4         <style>
 5         .c1{
 6             background-color: orangered;
 7             width: 20%;
 8             float: left;
 9         }
10         .c2{
11             background-color: orange;
12             width: 80%;
13             float: left;
14         }
15         .c3{
16             background-color: rosybrown;
17             width: 80%;
18             float: right;
19         }
20         .c4{
21             background-color: silver;
22             width: 90%;
23             float: left;
24         }
25         .c5{
26             background-color: palegreen;
27             width: 90%;
28             float: right;
29         }
30     </style>
31 </head>
32 <body>
33     <div style="border: 3px solid red;">
34         <div class="c1">1</div>
35         <div class="c2">2</div>
36         <div class="c1">1</div>
37         <div class="c3">3</div>
38         <div class="c1">1</div>
39         <div class="c4">4</div>
40         <div class="c1">1</div>
41         <div class="c5">5</div>
42     </div>
43 </body>

 样式如下:可发现子div脱离了父div(父div是红框)

  解决办法:在子div标签最后增加 <div style="clear: both;"></div>

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4         <style>
 5         .c1{
 6             background-color: orangered;
 7             width: 20%;
 8             float: left;
 9         }
10         .c2{
11             background-color: orange;
12             width: 80%;
13             float: left;
14         }
15         .c3{
16             background-color: rosybrown;
17             width: 80%;
18             float: right;
19         }
20         .c4{
21             background-color: silver;
22             width: 90%;
23             float: left;
24         }
25         .c5{
26             background-color: palegreen;
27             width: 90%;
28             float: right;
29         }
30     </style>
31 </head>
32 <body>
33     <div style="border: 3px solid red;">
34         <div class="c1">1</div>
35         <div class="c2">2</div>
36         <div class="c1">1</div>
37         <div class="c3">3</div>
38         <div class="c1">1</div>
39         <div class="c4">4</div>
40         <div class="c1">1</div>
41         <div class="c5">5</div>
42         <div style="clear: both;"></div>  <!-- 如果子div漂浮,那么就会脱离父div,解决办法是增加该属性 -->
43     </div>
44 </body>

样式如下:子div又回到父div的掌控中。

5、内联标签和块级标签的互相转换  

display: inline
  1. 内联标签(内联元素)不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行。
  2. 行内元素不能设置宽度、高度属性,其宽度随元素的内容而变化。
  3. 行内元素的margin和padding属性:水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, margin-top, margin-bottom不会产生边距效果。

  对于第三条的解释,请看下例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="margin: 0px">
    <a style="background-color: #1b6d85; display: inline; margin: 20px 10px 20px 20px; border-style: solid;">inline-element</a>
    <a style="background-color: #1b6d85; display: inline; margin: 20px 20px 20px 10px; border-style: solid;">inline-element</a>

    <div style=" 150px; text-align: center; background-color: #ac2925; border-style: solid">block-element</div>
</body>
</html>

  示例效果如下图:

  

  由图可见,margin-top和margin-bottom虽然设置了像素值,但是没有起作用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="margin: 0px">
    <a style="background-color: #1b6d85; display: inline; padding: 20px 10px 20px 20px;">inline-element</a>
    <a style="background-color: #1b6d85; display: inline; padding: 20px 20px 20px 10px;">inline-element</a>

    <div style=" 150px; text-align: center; background-color: #ac2925; padding: 20px 20px 20px 10px;">block-element</div>
</body>
</html>

  示例效果如下图: 

  

  由图可见,虽然padding-top被设置了像素值,但是a标签(即内联元素)padding-top没有生效。

display: block
  1. 块级标签(块级元素)独占一行。默认情况下,块级元素宽度自动填满其父元素宽度。
  2. 块级元素可以自定义宽度、高度,但即使是设置了宽度、高度,仍然是独占一行。
  3. 块级元素可正常设置margin和padding属性。

 

display: inline-block

   inline和block的结合体。使元素能够设置宽度和高度属性,但是不会单独成行。

  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="margin: 0px">
    <div style="background-color: #3e8f3e; padding: 20px 20px 20px 20px; border: solid">block element</div>
    <div style="background-color: #3e8f3e; padding: 20px 20px 20px 20px; border: solid">block element</div>

    <div style="background-color: #1b6d85; display: inline-block; padding: 20px 20px 20px 20px;">inline-block element</div>
    <div style="background-color: #1b6d85; display: inline-block; padding: 20px 20px 20px 20px;">inline-block element</div>

</body>
</html>

  示例效果如下图:

  

   内联标签和块级标签可以相互转换:

1 <body>
2     <div style="background-color: #006699;display: inline;">test1</div>  <!-- div转换为内联标签 -->
3     <span style="background-color: palegreen;display: block;">test2</span>  <!-- span转换为块级标签 -->
4     <span style="background-color: orange;height: 50px; 50px">test3</span>  <!-- 行内标签缺省无法设置宽度高度等 -->
5     <span style="background-color: orange;height: 50px; 50px;display: inline-block">test3</span>  <!-- 改变属性后可以设置 -->
6 </body>

6、外边距和内边距

6.1 外边距

  • 围绕在元素边框的空白区域是外边距。设置外边距会在元素外创建额外的“空白”,而元素本身大小不会发生改变
  • 默认情况下body的外边距为8px,可以用style="margin:0px"来修改。
  • style="margin:0px auto"可以让div居中。
  • 设置外边距的最简单的方法就是使用 margin 属性,这个属性接受任何长度单位、百分数值甚至负值。
 1 <body style="margin: 0px">  <!-- 默认情况下body的外边距为8px,可以用style="margin:0px"来修改 -->
 2     <div style="border:1px solid red; height: 80px;" >
 3         <div style="background-color: #006699; height: 60px; margin-top: 0px;">外上边距高度为0像素</div>
 4     </div>
 5     <br />
 6     <div style="border:1px solid black; height: 80px;" >
 7         <div style="background-color: hotpink; height: 60px; margin-top: 20px;">外上边距高度为20像素,元素自身大小不会随之变化</div>
 8     </div>
 9     <br />
10     <div style="border:1px solid darkslategray; height: 80px;" >
11         <div style="background-color: darkorange; height: 60px; margin-top: 90px;">外上边距高度为90像素,元素自身大小不会随之变化</div>
12     </div>
13 </body> 

显示效果如下:

  6.2 内边距

  • 元素的内边距在边框和内容区之间。
  • 控制该区域最简单的属性是 padding 属性,padding 属性定义元素边框与元素内容之间的空白区域。
 1 <body>
 2     <div style="border:1px solid red; height: 80px;" >
 3         <div style="background-color: #006699; height: 60px; padding-top: 0px;">元素内边距(边框和内容区之间)为0</div>
 4     </div>
 5     <br />
 6     <div style="border:1px solid black; height: 80px;" >
 7         <div style="background-color: hotpink; height: 60px; padding-top: 20px;">元素上边框和内容之间填充了20px</div>
 8     </div>
 9     <br />
10     <div style="border:1px solid darkslategray; height: 80px;" >
11         <div style="background-color: darkorange; height: 60px; padding-top: 90px;">元素上边框和内容之间填充了90px</div>
12     </div>
13 </body>

  显示效果如下:

7、CSS Position

  CSS position可以达到让div叠加和定位的目的。

7.1 fixed

fixed生成绝对定位,但这个绝对是对于浏览器(页面)来说的,使div固定在浏览器(页面)的某个绝对位置,而不是div的某个绝对位置。

1 <body style="margin: 0px;">  <!-- fixed生成绝对定位(这个绝对是对于浏览器来说的,使div固定在浏览器的某个绝对位置) -->
2     <div style=" 80px;height: 50px;background-color: #006699;line-height: 50px;text-align: center;
3     position: fixed;
4     bottom: 0px;
5     right: 0px">返回顶部</div>
6     <div style="height: 5000px; background-color: #989898"></div>
7 </body>

  显示效果如下:可以看到返回顶部的标签不会随着浏览器下拉的移动而移动,而是“固定”在了浏览器(页面)的下方,达到了“绝对定位”的目的。

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5         .pg_header{
 6             background-color: hotpink;
 7             height: 30px;
 8             line-height: 30px;
 9             text-align: center;
10             position: fixed;
11             top: 0px;
12             left: 0px;
13             right: 0px;
14 
15         }
16         .pg_body{
17             background-color: palegreen;
18             height: 3000px;
19             margin-top: 35px;
20             text-align: center;
21         }
22     </style>
23 </head>
24 <body style="margin:0px;">
25     <div class="pg_header">头部</div>
26     <div class="pg_body">内容</div>
27 </body>

  显示效果如下:“头部”不会随着浏览器的下拉而移动位置。

7.2 absolute

absolute生成真正意义上的绝对定位。

1 <body style="margin: 0px;">  <!-- absolute固定在页面的某个绝对位置 -->
2     <div style=" 80px;height: 50px;background-color: #006699;line-height: 50px;text-align: center;
3     position: absolute;  
4     bottom: 0px;
5     right: 0px">返回顶部</div>
6     <div style="height: 5000px; background-color: #989898"></div>
7 </body>

效果如下:可以看到返回顶部按钮随着浏览器下拉而移动。

 

7.3 relative

relative生成相对定位的元素,相对于其正常位置进行定位。一般和absolute联用。 

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5         div {
 6             text-align: center;
 7             line-height: 100px;
 8         }
 9     </style>
10 </head>
11 <body>
12     <div style="position:relative; border: 1px solid red; margin: auto;  800px; height: 200px;">
13         <div style="position:absolute; background-color: hotpink;  100px; height: 100px; left:0px; bottom: 0px;">
14             我在这儿
15         </div>
16     </div>
17     <div style="position:relative; border: 1px solid red; margin: auto;  800px; height: 200px;">
18         <div style="position:absolute; background-color: hotpink;  100px; height: 100px; right:0px; top: 0px;">
19             我在这儿
20         </div>
21     </div>
22     <div style="position:relative; border: 1px solid red; margin: auto;  800px; height: 200px;">
23         <div style="position:absolute; background-color: hotpink;  100px; height: 100px; left:0px; top: 0px;">
24             我在这儿
25         </div>
26     </div>
27 </body>

显示效果如下:

 

7.4 opacity

  opacity 属性设置元素的不透明级别,默认值为1。1为不透明,0为全透明。

 1 <body>
 2     <div style="position:fixed; background-color: gray;
 3     top: 0px;
 4     right: 0px;
 5     bottom: 0px;
 6     left: 0px;
 7     opacity: 0.5;
 8     ">第二层半透明</div>
 9     <div style="height: 5000px; background-color: peru; text-align: center">第一层</div>
10 </body>

  显示效果如下:

 

7.5 z-index

   z-index属性设置元素的堆叠顺序,拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。

 1 <body>  <!-- z-index值越大越在外层 -->
 2     <div style="
 3     z-index: 10;
 4     position: fixed;
 5     background-color: white;
 6     height: 200px;
 7      400px;
 8     top: 50%;
 9     left: 50%;
10     margin-left: -200px;
11     margin-top: -100px;
12     text-align: center;
13     ">
14         第三层
15     </div>
16     <div style="
17     z-index: 9;
18     position:fixed;
19     background-color: black;
20     top: 0px;
21     right: 0px;
22     bottom: 0px;
23     left: 0px;
24     opacity: 0.5;
25     color: white">
26         第二层
27     </div>
28     <div style="height: 5000px; background-color: green; text-align: center">第一层</div>
29 </body>

效果如下:

8、overflow

  overflow 属性规定当内容溢出元素框时发生的事情。 

 1 <body>
 2     <div style="height: 200px;  200px; overflow: hidden; float: left">  <!-- 图片超过部分会隐藏-->
 3         <img src="1.jpg" />  <!-- 图片像素为1600x900 超过了div所定义的大小-->
 4     </div>
 5     <div style="height: 200px;  200px; overflow: scroll; float: left">  <!-- 图片超过部分会有滚动条-->
 6         <img src="1.jpg" />  <!-- 图片像素为1600x900 超过了div所定义的大小-->
 7     </div>
 8     <div style="height: 200px;  200px; overflow: auto; float: left">  <!-- 图片超过部分会有滚动条-->
 9         <img src="1.jpg" />  <!-- 图片像素为1600x900 超过了div所定义的大小-->
10     </div>
11 </body>

  显示效果如下:

9、hover

:hover 选择器用于选择鼠标指针浮动在上面的元素。

  • :hover 选择器可用于所有元素,不只是链接。
  • :link 选择器设置指向未被访问页面的链接的样式,:visited 选择器用于设置指向已被访问的页面的链接,:active 选择器用于活动链接。
  • 在 CSS 定义中,:hover 必须位于 :link 和 :visited 之后(如果存在的话),这样样式才能生效。
 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5         .pg_header{
 6             position: fixed;
 7             top: 0px;
 8             right: 0px;
 9             bottom: 0px;
10             left: 0px;
11             background-color: #006699;
12             height: 48px;
13             line-height: 48px;
14         }
15         .pg_body{
16             margin-top: 50px;
17         }
18         .w{
19             width: 980px;
20             margin: auto;
21         }
22         .pg_header .w .menu{
23             color: white;
24             display: inline-block;
25             padding: 0px 20px 0px 20px;
26 
27         }
28         .pg_header .w .menu:hover{
29             background-color: skyblue;
30         }
31     </style>  <!-- 当鼠标移动到对应标签上时,CSS属性才会生效 -->
32 </head>
33 <body style="margin: 0px;">
34     <div class="pg_header">
35         <div class="w">
36             <a>LOGO</a>
37             <a class="menu" style="margin-left: 50px">全部</a>
38             <a class="menu">42区</a>
39             <a class="menu">段子</a>
40             <a class="menu">图片</a>
41         </div>
42     </div>
43     <div class="pg_body">
44         <div class="w">body</div>
45     </div>
46 </body>

显示效果如下:

 

10、background

10.1 background属性

background 简写属性在一个声明中设置所有的背景属性。

可以设置如下属性:

    • background-color
    • background-position
    • background-size
    • background-repeat
    • background-origin
    • background-clip
    • background-attachment
    • background-image

如果选择图片作为背景,默认情况下图片会重复填充,直到将div填充满。

1 <body style="margin: 0px;">
2     <div style="background-image: url('4.gif'); height: 1800px;  2900px;"></div>  <!-- 图片会重复填充,直到将div填充满 -->
3 </body>

效果如下所示:

10.2 background-repeat

10.2.1 background-repeat:no-repeat

background-repeat:no-repeat属性的限制,即使div再大,图片也不会重复填充。

1 <body style="margin: 0px;">
2     <div style="height: 1800px; 2900px;background: url('4.gif') no-repeat;"></div>
3     <!-- 有background-repeat:no-repeat属性的限制,即使div再大,图片也不会重复填充 -->
4     <!-- background: url('4.gif') no-repeat是缩写,全写为background-image: url('4.gif'); background-repeat: no-repeat; -->
5 </body>

  显示效果如下所示:

 

10.2.2 background-repeat: repeat-x

有background:repeat-x属性的限制,即使div高度再大,图片也只会横向重复填充.

1 <body style="margin: 0px;">
2     <div style="height: 1800px; 2900px;background: url('4.gif') repeat-x;"></div>
3     <!-- 有background:repeat-x属性的限制,即使div高度再大,图片也只会横向重复填充 -->
4     <!-- background: url('4.gif') repeat-x是缩写,全写为background-image: url('4.gif'); background-repeat: repeat-x; -->
5 </body>

  显示效果如下:

10.2.3 background-repeat: repeat-y

有background:repeat-y属性的限制,即使div宽度再大,图片也只会纵向重复填充.

1 <body style="margin: 0px;">
2     <div style="height: 1800px; 2900px;background: url('4.gif') repeat-y;"></div>
3     <!-- 有background:repeat-y属性的限制,即使div宽度再大,图片也只会纵向重复填充 -->
4     <!-- background: url('4.gif') repeat-y是缩写,全写为background-image: url('4.gif'); background-repeat: repeat-y; -->
5 </body>

  显示效果如下:

 11、练习题

在input框中增加图片。

 1 <head>
 2     <meta charset="UTF-8">
 3     <title>Title</title>
 4     <style>
 5     .div1{
 6         width: 400px;
 7         height: 30px;
 8         position: relative;
 9         /*border: 1px solid red;*/
10     }
11     .input_div{
12         background: url('i_name.jpg') no-repeat;
13         height: 16px;
14         width: 16px;
15         position: absolute;
16         right: 0px;
17         top: 10px;
18     }
19     </style>
20 </head>
21 <body>
22     <div class="div1">  <!-- 该div和input框一致,目的是让图片可以和div层叠,然后视觉上达到图片在input框里面的目的 -->
23         <form>
24             <input type="text" style=" 380px; height: 30px; padding-right: 20px" />
25             <!-- 这里设置填充的目的:因为图片是叠加在第一个div上的,当input内容过长时,会被图片遮挡。因此可以填充右内边距,
26             让输入框宽度+右填充宽度=原div框长度,从而解决此问题。 -->
27             <div class="input_div"></div>
28         </form>
29     </div>
30 </body>

  显示效果如下:

如果不设置右填充,那么会出现如下的情况:因为div叠加的关系,图片下的内容会被图片遮盖。

 

原文地址:https://www.cnblogs.com/Druidchen/p/8979716.html