Web前端基础(6):CSS(三)

1. 定位

定位有三种:相对定位、绝对定位、固定定位

1.1 相对定位

现象和使用:

1.如果对当前元素仅仅设置了相对定位,那么与标准流的盒子什么区别。

2.设置相对定位之后,我们才可以使用四个方向的属性: top、bottom、left、right。

特性:1.不脱标  2.形影分离  3.老家留坑

所以说相对定位在页面中没有什么太大的作用。影响我们页面的布局。我们不要使用相对定位来做压盖效果

用途:

1.微调元素位置

2.做绝对定位的参考(父相子绝)绝对定位会说到此内容。

1.2 绝对定位

特性:1.脱标  2.做遮盖效果,提成了层级。设置绝对定位之后,不区分行内元素和块级元素,都能设置宽高。

参考点:

一、单独一个绝对定位的盒子

1.当我使用top属性描述的时候 是以页面的左上角(跟浏览器的左上角区分)为参考点来调整位置
2.当我使用bottom属性描述的时候。是以首屏页面左下角为参考点来调整位置。

二、以父辈盒子作为参考点

1.父辈元素设置相对定位,子元素设置绝对定位,那么会以父辈元素左上角为参考点,这个父辈元素不一定是爸爸,它也可以是爷爷,曾爷爷。

2.如果父亲设置了定位,那么以父亲为参考点。那么如果父亲没有设置定位,那么以父辈元素设置定位的为参考点。

3.不仅仅是父相子绝,父绝子绝 ,父固子绝,都是以父辈元素为参考点。

注意了:父绝子绝,没有实战意义,做站的时候不会出现父绝子绝。因为绝对定位脱离标准流,影响页面的布局。相反‘父相子绝’在我们页面布局中,是常用的布局方案。因为父亲设置相对定位,不脱离标准流,子元素设置绝对定位,仅仅的是在当前父辈元素内调整该元素的位置。

还要注意,绝对定位的盒子无视父辈的padding。

作用:页面布局常见的“父相子绝”,一定要会!

绝对定位中的居中:

*{

   padding: 0;

   margin: 0;

}

.box{

   width: 100%;

   height: 69px;

   background: #000;

}

.box .c{

  width: 960px;

   height: 69px;

   background-color: pink;

/*margin: 0 auto;*/

   position: relative;

   left: 50%;

   margin-left: -480px;

/*设置绝对定位之后,margin:0 auto;不起任何作用,如果想让绝对定位的盒子居中。当做公式记下来 设置子元素绝对定位,然后left:50%; margin-left等于元素宽度的一半,实现绝对定位盒子居中*/

}

1.3 固定定位

固定当前的元素不会随着页面滚动而滚动

特性: 1.脱标 2.遮盖,提升层级 3.固定不变

参考点:

设置固定定位,用top描述。那么是以浏览器的左上角为参考点
如果用bottom描述,那么是以浏览器的左下角为参考点

作用: 1.返回顶部栏 2.固定导航栏 3.小广告

2. 文本属性和字体属性

2.1 文本属性

属性

描述

属性值

 说明

text-align

文本对齐方式

none

center

left

right

justify

color

文本颜色

text-indent

首行缩进,单位建议em

text-decoration

规定文本修饰的样式 

none   

underline  

overline  

line-through

inherit 

默认

下划线

定义文本上的一条线

定义穿过文本下的一条线

继承父元素text-decoration属性的值 

line-height

行高

针对单行文本垂直居中

公式:行高=盒子高度,

使文本垂直居中,只适用单行文本。

针对多行文本垂直居中

行高不能小于字体,不然字会紧挨一起。

text-shadow

 阴影

 5px 5px 5px #FF0000

水平方向偏移量

垂直方向偏移量

模糊度

阴影颜色

text-overflow

 文字溢出

clip

ellipsis

修剪文本

显示省略号代表被修剪文本

 white-space

处理元素内的空白 

normal

pre

nowrap

pre-wrap

pre-line

inherit

默认。空白被浏览器忽略。

空白会被浏览器保留

文本不换行,直到遇到 <br>

保留空白符序列,但正常地进行换行

合并空白符序列,但是保留换行符

继承父元素 white-space 属性的值

文字溢出:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>text-overflow</title>
    <style type="text/css">
        .div0 {
            width: 300px;
            border: 1px solid darkblue;
        }
        .div1 {
            width: 300px;
            border: 1px solid red;
 
            /*强制在一行内显示*/
            white-space: nowrap;
            /*超出部分隐藏*/
            overflow: hidden;
        }
        .div2 {
            width: 300px;
            border: 1px solid black;
 
            /*强制在一行内显示*/
            white-space: nowrap;
            /*超出部分隐藏*/
            overflow: hidden;
            /*修剪超出的文本*/
            text-overflow: clip;
        }
        .div3 {
            width: 300px;
            border: 1px solid chocolate;
 
            /*强制在一行内显示*/
            white-space: nowrap;
            /*超出部分隐藏*/
            overflow: hidden;
            /*显示省略符号来代表被修剪的文本*/
            text-overflow: ellipsis;
        }
    </style>
</head>
<body>
<div class="div0">各国领导人感谢中方作为东道主对各国参展给予的大力支持</div><br>
<div class="div1">各国领导人感谢中方作为东道主对各国参展给予的大力支持</div><br>
<div class="div2">各国领导人感谢中方作为东道主对各国参展给予的大力支持</div><br>
<div class="div3">各国领导人感谢中方作为东道主对各国参展给予的大力支持</div><br>
</body>
</html>

2.2 字体属性

属性

描述

属性值

说明

font-size

字体大小

font-weight

字体粗细

none

bold

border

lighter

100~900

inherit

默认值,标准粗细

粗体

更粗

更细

值,400=normal,700=bold

继承父元素字体的粗细值

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% “宋体”

3. background

给元素设置padding之后,发现padding的区域背景和content部分的一致。

3.1 background-color —— 背景颜色

设置背景色:

css: 
   <style>
       .demo{
           width: 50px;
           height: 100px;
           background-color: greenyellow;
       }
    </style>
html:
<body>
<div class="demo"></div>
</body>

3.2 background-image —— 背景图片

设置背景图片:

css:
     <style>
       .demo{
           width: 2000px;
           height: 1500px;
           background-image: url(‘img/1.jpg‘);
       }
    </style>
html:
    <body>
    <div class="demo"></div>
    </body>

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

背景图片相关配置:

background-repeat:设置背景图像的平铺方式

repeat

repeat-x

repeat-y

no-repeate

inherit

默认。背景图像将在垂直方向和水平方向重复

背景图像将在水平方向重复

背景图像将在垂直方向重复

背景图像将仅显示一次

规定应该从父元素继承 background-repeat 属性的设置

background-position:设置背景图像的起始位置

垂直位置 水平位置

可以从两个纬度上设定关键词:上中下 左中右

垂直位置:top center bottom

水平位置:left center right

如仅规定了一个关键词,那么第二个值将是"center"。

默认值:0 0;

这两个值必须挨在一起。

background-attachment:设置固定的背景图像

scroll

fixed

inherit

默认值。背景图像会随着页面其余部分的滚动而移动。

当页面的其余部分滚动时,背景图像不会移动。

规定应该从父元素继承 background-attachment 属性的设置。

3.3 background属性的简写

background:#ffffff url(‘1.png‘) no-repeat right top;

相关推荐