css 选择器 元素

一丶css选择器的优先级

 行内  >  id选择器  > 类选择器  > 标签选择器 > 继承
1000     100       10           1       0

# 所有的值可以累加,但不能进位 (同级别的数值可以累加)
# 优先级如果相同,写在后面的生效

 

二丶css的颜色表示

/*RGB表示法*/
rgb: red green blue  /* 光谱三原色 */
rgb(255,255,255) /*白色*/
rgb(0,0,0)   /*黑色*/

/*16进制的颜色表示法 */
#000000-#FFFFFF
#000-#FFF

/* 单词表示法 */
# red green

/* rgba表示法 */
#a代表透明度 ,范围:0-1,0是完全透明,1是不透明

 

三丶字体,文本,背景图片

字体

/*常用的字体属性*/
{
  font-family: 'Microsoft Yahei','楷体','仿宋';
  font-weight: bold;
  font-size: 12px;
}

文本

/*常用的文本属性*/
{
   text-align 文字的水平对齐
               left 左对齐
               center 居中
               reght 右对齐
   text-decoration 文本装饰
               none;         没有下划线
               line-through; 中划线
               overline;     上划线
               underline;   下划线

   text-indent 文本缩进
text-indent: 2em; em单位是一个相对单位,相对当前字体大小的像素是1em

   line-height 行高,设置行高=容器高度,文字自动垂直居中
                line-height: 200px;

color:设置字体颜色
}

背景图

/*背景图属性*/
{
   background-color: red;   /*在没有背景图片覆盖的范围显示背景颜色*/
   
   background-image: url('timg.jpg'); /*设置背景图片*/
   
   height: 400px;
   width: 400px;
   /*图片是否重复 */
   background-repeat: no-repeat; /*设置图片不重复   repeat-x水平重复   repeat-y垂直重复*/
   background-position: right top; /*图片的位置   左中右x 上中下y*/
   
   /*left center right /top center bottom*/
   background-attachment: fixed;/* 在窗口中固定图片的位置*/
   
   /* 综合的背景属性 */
   background:red url("timg.jpg") no-repeat left center; 把所有的设置综合写在background中
}

列表样式

/* 去除列表的样式 */
ul,li{
   list-style:none
}

 

四丶边框设置

border:边框的意思,描述盒子的边框

边框有三个要素: 粗细 线性样式 颜色(如不写颜色默认为黑色。如不写粗细不显示边框。只写线性样式,默认有上下左右 3px宽度的实体黑色边框。)

/* 边框的属性  */
           /* 取值顺序:
                  一个值:上下左右
                  四个值:遵循顺时针上右下左
                  三个值:上 右左 下
                  两个值:遵循上下 左右
          */
{
           border-color: tomato green gray yellow;/*边框设置颜色*/
   
           border-width: 1px 3px 5px 7px;/*边框设置宽度*/
           border-style: solid dotted dashed double;/*设置边框的风格:实线,点线,虚线,双线*/

           border-top-style:solid ; /* 单独设置顶线的样式(left,bottom,right)*/
           border-left-style:solid ;/*单独设置左边线的样式*/
           border-top-color:red;    /*单独设置顶线颜色*/    
           border:yellow solid  10px;    /*统一设置边框的颜色 样式 宽度*/
 
  border-radius: 5px; /*给图形设置圆角*/
}

利用border画三角形

div{
          width: 0px;
          height: 0px;
          border-style: solid;
          border-width: 20px;
          border-color: #7ef0c2 transparent transparent transparent;
}

margin的设置

margin:外边距的意思。表示边框到最近盒子的距离。

/*表示四个方向的外边距离为20px*/
margin: 20px;
/*表示盒子向下移动了30px*/
margin-top: 30px;
/*表示盒子向右移动了50px*/
margin-left: 50px;
/*表示盒子距离右面的盒子100px*/
margin-right: 100px;
/*表示盒子距离下面的盒子100px*/
margin-bottom: 100px;

margin的塌陷(设置了bottom和top会重合,取最最大的值)

<div class="father">
    <div class="box1"></div>        
    <div class="box2"></div>
</div>
css:
    *{
            padding: 0;
            margin: 0;
        }
        .father{
            width: 400px;
            border: 1px solid gray;
            /*float: left;*/
        }
        .box1{
            width: 300px;
            height: 200px;
            background-color: red;
            margin-bottom: 20px;
            /*float: left;*/
        }
        .box2{
            width: 400px;
            height: 300px;
            background-color: green;
            margin-top: 50px;
            /*float: left;*/
        }

/*
	当给两个标准流下兄弟盒子 设置垂直方向上的margin时,那么以较大的为准,那么我们称这种现象叫塌陷。没法解决,我们称为这种技巧叫“奇淫技巧”。记住这种现象,在布局垂直方向盒子的时候注意margin的用法。
当我们给两个标准流下的兄弟盒子设置浮动之后,就不会出现margin塌陷的问题。
*/

margin: 0 auto

div{
            width: 780px;
            height: 50px;
            background-color: red;
            /*水平居中盒子*/
            margin: 0px auto;
                        /*水平居中文字*/
            text-align: center;

        }

/*当一个div元素设置margin:0 auto;时就会居中盒子,那我们知道margin:0 auto;表示上下外边距离为0,左右为auto的距离,那么auto是什么意思呢?

设置margin-left:auto;我们发现盒子尽可能远离左侧,当设置margin-right:auto;我们发现盒子尽可能远离右侧。当两条语句并存的时候,我们发现盒子尽可能远离两侧,此时盒子就居中了。

如果给盒子设置浮动,那么margin:0 auto失效。

使用margin:0 auto;注意点:

1.使用margin: 0 auto;水平居中盒子必须有width,要有明确width,文字水平居中使用text-align: center;
2.只有标准流下的盒子 才能使用margin:0 auto; 
当一个盒子浮动了,固定定位,绝对定位(后面会讲),margin:0 auto; 不能用了
3.margin:0 auto;居中盒子。而不是居中文本,文字水平居中使用text-align: center;

善于使用父亲的padding,而不是margin

margin属性是描述兄弟盒子的关系,而padding描述的是父子盒子的关系.

        *{
            padding: 0;
            margin: 0;
        }
        .father{
            width: 300px;
            height: 300px;
            background-color: blue;
            padding-top: 30px;
        }
        .xiongda{
            width: 100px;
            height: 100px;
            background-color: orange;
        }
/*
	因为父亲没有border,那么儿子margin-top实际上踹的是“流” ,踹的是行,所以父亲掉下来了,一旦给父亲一个border发现就好了
*/

 

五丶块和行内的转换

行内元素:

1.与其他行内元素并排

2.不能设置宽、高。默认的宽度,就是文字的宽度

3.对于行内标签来说不能设置宽和高

4.有些时候需要行内标签也设置宽和高,需要进行行内-->块,行内->行内块

块级元素:

1.霸占一行,不能与其他任何元素并列;

2.能接受宽、高。如果不设置宽度,那么宽度将默认变为父亲的100%。

 

块级元素可以转换为行内元素:

display: inline;

/*此时这个div不能设置宽度、高度;*/
/*此时这个div可以和别人并排了*/

行内元素转换为块级元素:

display: block;

/*此时这个span能够设置宽度、高度*/
/*此时这个span必须霸占一行了,别人无法和他并排*/
/*如果不设置宽度,将撑满父亲*/

标准流里面的限制非常多,导致很多页面效果无法实现。如果我们现在就要并排、并且就要设置宽高,那该怎么办呢?办法是:移民!脱离标准流!

css中一共有三种手段,使一个元素脱离标准文档流:

(1)浮动

(2)绝对定位

(3)固定定位

 

/* display的属性值 : block块  inline行内 inline-block行内快 none */
{
    
	display: block;      /*  独占一行并且可以设置宽高*/
    
	display: inline-block;  /*既可以设置宽高又不会独占一行 行内\块转行内快*/
    
	display: inline;        /*表示一个行内元素,不能设置宽高*/
    
	display: none;          /*不仅不显示内容,连位置也不占了*/
}

 

六丶盒模型

在CSS中,"box model"这一术语是用来设计和布局时使用,然后在网页中基本上都会显示一些方方正正的盒子。我们称为这种盒子叫盒模型。

/* 盒模型的属性 */
width:内容的宽度
height: 内容的高度
padding:内边距,边框到内容的距离,padding的区域是有背景颜色的。并且背景颜色和内容的颜色一样。也就是说background-color这个属性将填充所有的border以内的区域
border: 边框,就是指的盒子的宽度
margin:外边距,盒子边框到附近最近盒子的距离

盒模型的计算 :width/height+2padding+2border

如果一个盒子设置了padding,border,width,height
    盒子的真实宽度=width+2*padding+2*border
    盒子的真实高度=height+2*padding+2*border

如果要保持盒子真实的宽度,那么加padding就一定要减width,减padding就一定要加width。

padding的设置

/* 四个方向设置padding*/
padding-top: 30px;
padding-right: 30px;
padding-bottom: 30px;
padding-left: 30px;

/* 四种方式设置padding */
/*上 右 下 左*/
padding: 20px 30px 40px 50px ;
/*上 左右  下*/
padding: 20px 30px 40px;
/* 上下 左右*/
padding: 20px 30px;
/*上下左右*/
padding: 20px;

标签的默认padding

比如ul,ol标签,有默认的padding-left值。

那么我们一般在写网页的时候,是要清除页面标签中默认的padding和margin。以便于我们更好的去调整元素的位置。

*{
  padding:0;
  margin:0;    
}

 

七丶浮动

浮动是css里面布局最多的一个属性,也是很重要的一个属性。

float:表示浮动的意思。它有四个值。

1.none: 表示不浮动,默认

2.left: 表示左浮动

3.right:表示右浮动

float:left /right
	浮动的元素会脱离标准文档流,原本块级元素就不再独占整行了
	并且在原页面中也不占位置了,之后的元素会挤到页面上影响页面的排版

清除浮动 clear:both

伪元素清除法:
        .clearfix:after{
            content: '';
            clear: both;
            display: block;
        }


<body>
<div class="father clearfix">
<div class="box"></div>
<div class="box"></div>
</div>
<div class="main">
    主页的内容
</div>
</body>

浮动的四大特性:

1.浮动的元素会脱离标准文档流
2.浮动的元素互相贴靠
3.浮动的元素有"子围"效果
4.收缩的效果

浮动的问题和清除浮动

1.给父盒子设置高度

2.clear:both

left:当前元素左边不允许有浮动元素

right:当前元素右边不允许有浮动元素

both:当前元素左右两边不允许有浮动元素

给浮动元素的后面加一个空的div,并且该元素不浮动,然后设置clear:both。

3.伪元素清除法(常用)

给浮动子元素的父盒子,也就是不浮动元素,添加一个clearfix的类,然后设置

.clearfix:after{
    /*必须要写这三句话*/
    content: '.';
    clear: both;
    display: block;
}

overflow

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

/*内容多余标签的大小*/
overflow:类型
	   visible 可见(默认)
	   hidden 超出部分隐藏
	   scroll 超出显示滚动条
	   auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
	   inherit	规定应该从父元素继承 overflow 属性的值。

 

八丶定位

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

绝对定位

特性: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.脱标 2.遮盖,提升层级 3.固定不变

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

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

综合👇:

/* 三种类型 ,相对,绝对,固定*/
position : relative /absolute /fixed
/*只有设置了定位 上,右,下,左,才会生效*/
top:10px;
right:10px;
bottom:10px;
left:10px;

/*
相对定位 :相对自己原来的位置移动,移动之后还占据原来的位置
绝对定位 :绝对定位是相对于整个html页面,不会占据原来的位置,层级的提升
	如果我们设置了绝对定位的元素 的父元素 没有设置position,那么我们对元素的所有设置都是基于整个页面
	如果设置了position,那么子盒子的absolute位置会根据父盒子的位置定位
	父相子绝:子元素设置的绝对位置会对应着祖级元素的相对位置

固定定位 :固定是相对于整个窗口的 */

 

九丶z-index,opacity

z-index

指的就是各个盒子重叠在一起谁上谁下的问题。

四大特性,只要你记住了,页面布局就不会出现找不到盒子的情况。

z-index 值表示谁压着谁,数值大的压盖住数值小的,
只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index
z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。

opacity

透明度,范围0-1,0透明,1不透明

posted on 2020-03-02 11:33  向往1  阅读(130)  评论(0编辑  收藏  举报

导航

……