前端之CSS

1.css语法结构

每个CSS样式由两个组成部分:选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束
选择器 {属性名1:属性值1;属性名2:属性值2}

2.css几种引入方式

1.布局方式
    a. table方式布局
    b.div + table结合布局
    c.div + css进行布局

2. css的三种引入方式
    a.直接在标签中写入:行内样式(不推荐大规模使用,css样式过长,样式与内容混合,不利于后期维护)
    b. 内部样式:css的样式写在head标签中间
<style type="text/css">
    选择器 {
        (属性)background-color: (属性值)red;
    }
    选择器: 作用域  会对此选择器发生作用
    
    div{
        background-color: red;
        font-size: 25px
    }
</style>

    c. 外部样式
          将css写入到一个单独的文件中, 然后在html中直接引入
       <link href="mystyle.css" rel="stylesheet" type="text/css"/>

3.css选择器

   选择器: 作用域  会对此选择器发生作用

a. 标签(html标签)选择器
div{
    font-size: 25px;
    background-color: bisque;
}
html:
<div>test1test1test1</div>

b. ID选择器
#x1{
    background-color: black;
    color: red;
    font-size: 30px;
}
html:
<div id="x1">yyyyyyyyyyyyyyyyyyy</div>
注意:ID是唯一的才有意义

c.类别选择器
.c1{
    background-color: blanchedalmond;
    font-size: 40px;
    color:darkred;
}
html:
<div class="c1">qqqqqqqqqqqqqqqqqqqqqqqqqqqqqq</div>

d. 通用选择器
# 将网页上所有元素都运用此样式
#紧贴浏览器边缘
*{margin: 0;padding: 0}

e. 包含选择器
.c1 span{
    background-color: aquamarine;
}
html:
    <div class="c1">
        <span>spanspan_span_span</span>
    </div>

f. 分组选择器
.c1,span{
    color:red;
}
html:
<div class="c1">cccc11111111111111</div>
<span>bdbdbd</span>

4.组合选择器

a. 后代选择器
/*li内部的a标签设置字体颜色*/
li a {
  color: green;
}

b. 儿子选择器
/*选择所有父级是 <div> 元素的 <p> 元素*/
div>p {
  font-family: "Arial Black", arial-black, cursive;
}

c. 毗邻选择器
/*选择所有紧接着<div>元素之后的<p>元素*/
div+p {
  margin: 5px;
}

d. 弟弟选择器
/*i1后面所有的兄弟p标签*/
#i1~p {
  border: 2px solid royalblue;
}

5.伪类选择器

/* 未访问的链接 */
a:link {
  color: #FF0000
}

/* 鼠标移动到链接上 */
a:hover {
  color: #FF00FF
} 

/* 选定的链接 */ 
a:active {
  color: #0000FF
}

/* 已访问的链接 */
a:visited {
  color: #00FF00
} 

/*input输入框获取焦点时样式*/
input:focus {
  outline: none;
  background-color: #eee;
}

html:
<a href="http://www.baidu.com">跳转到百度</a>

6.选择器优先级

1.当选择器相同的情况下我们采用的是就近原则
    谁离标签越近听谁的
2.选择器不同的情况下 是有优先级之分
    行内样式 > ID选择器 > 类别选择器 > 标签选择器  > 通配符选择器

7.给标签设置样式的参数

a. 宽和高
width属性可以为元素设置宽度。
height属性可以为元素设置高度。
块级标签才能设置宽度,内联标签的宽度由内容来决定。

b. 文本属性
font-size: 设置字体的大小
color: 设置字体的颜色
text-align : left/right/center 文本居左/右/中 对齐
line-height: 行高  字体居中显示   取值应和height的值一样
text-decoration: underline/line-through/overline  属性用来给文字添加特殊效果

首行缩进
p {
  text-indent: 32px;
}
c. 边框
border: 1px solid red;
如果你不知道你所占的div的大小的时候, 可以使用border
值:none(无边框),dotted(点状虚线边框),dashed(矩形虚线边框),solid(实线边框)

画圆:
实现圆角边框的效果:
border-radius设置为长或高的一半即可得到一个圆形


d. background-color:背景属性
backgroud作为前缀
规律:
    如果多个参数的前缀都是一样的,那么一般情况下都可以有简写的形式,就是以该前缀为参数

/*背景颜色*/
background-color: red;
/*背景图片*/
background-image: url('1.jpg');
/*
 背景重复
 repeat(默认):背景图片平铺排满整个网页
 repeat-x:背景图片只在水平方向上平铺
 repeat-y:背景图片只在垂直方向上平铺
 no-repeat:背景图片不平铺
*/
background-repeat: no-repeat; 
/*背景位置*/
background-position: left top;
/*background-position: 200px 200px;*/

支持简写:
background:#336699 url('1.png') no-repeat left top;
        
利用背景图片布局
background-attachment: fixed;

背景图像:
background-img:
    background-image: url("aaa.png");
    background-repeat: repeat-y;
    background-position-y: 图像位置  距离浏览器窗口顶部的距离
    
    background-position-x: 图像位置  距离浏览器左边的距离

8.布局属性:

外边距:一个div和另一个div之间的距离

margin-top: 上边距
margin-bottom: 下边距
margin-left: 左边距
margin-right: 右边距

margin : 10px  : 上下左右  都是10px
margin : 10px 20px; 上下是10px 左右是20px
margin : 10px 20px 30px   
        margin-top: 10px;
        margin-right: 20px;
        margin-bottom: 30px;
        margin-left: 20px;
margin : 10px 20px 30px 40px;

内边距:

padding-top:10px;   文字距离div顶部的距离
padding-left:20px;  文字距离div左边的距离
padding-right:20px;
padding-bottom: 30px;



padding: 10px; 上下左右  都是10px
padding : 10px 20px; 上下是10px 左右是20px
padding : 10px 20px 30px   
        margin-top: 10px;
        margin-right: 20px;
        margin-bottom: 30px;
        margin-left: 20px;
padding : 10px 20px 30px 40px;

取消自带留白
*{
    margin:0;
    padding:0;
}

9.浮动属性

float: left / right;
#如果儿子飘起来, 老子管不住:
<div style="clear: both"></div>
描述
left 在左侧不允许浮动元素
right 在右侧不允许浮动元素
both 在左右两侧均不允许浮动元素
none 默认值。允许浮动元素出现在两侧
inherit 规定应该从父元素继承 clear 属性的值










clear属性规定元素的哪一侧不允许其他浮动元素
注意:clear属性只会对自身起作用,而不会影响其他元素。
示例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #i1{
            border: 1px solid green;
            width: 800px;
        }
        .c1{
            border: 1px solid red;
            width: 200px;
            height: 200px;
            float: left;
        }
    </style>
</head>
<body>
    <div id="i1">
        <div class="c1">
        </div>

        <div class="c1">
        </div>

        <div class="c1">
        </div>

        <div class="c1">
        </div>
        <div style="clear: none"></div>
    </div>
</body>
</html>

10.display:用于控制HTML元素的显示效果(使用频率不高)

意义
display:none; HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用
display:block 认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分
display:inline 按行内元素显示,此时再设置元素的widthheightmargin-topmargin-bottomfloat属性都不会有什么影响。
display:inline-block 使元素同时具有行内元素和块级元素的特点。

11.overflow溢出处理属性

overflow: auto; 自动设置滚动条
overflow: none: 自动隐藏超出的部分
left:向左浮动
right:向右浮动
none:默认值,不浮动

visible 默认值。内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值。

<!DOCTYPE HTML>
<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="x-ua-compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>圆形的头像示例</title>
  <style>
    * {
      margin: 0;
      padding: 0;
      background-color: #eeeeee;
    }
    .header-img {
      width: 150px;
      height: 150px;
      border: 3px solid white;
      border-radius: 50%;
      overflow: hidden;
    }
    .header-img>img {
      width: 100%;
    }
  </style>
</head>
<body>

<div class="header-img">
  <img src="https://img10.360buyimg.com/n1/jfs/t1/137843/33/10442/151310/5f84167bE6f35f0c3/d2d830fea64c7691.jpg" alt="">
</div>

</body>
</html>

圆形头像示例
示例:圆形图像

 12.定位

1.static静态定位
    所有的标签默认都是静态定位,意思就是无法移动位置
    如果你想要通过得的方式移动某个标签,就必须先将改标签设置成不是static定位
2.relative相对定位
    相对于标签原来的位置
3.absolute绝对定位
    相对于已经定位过的父标签(不需要考虑其他标签)
    eg:小米网购物车
4.fixed固定定位
    固定在浏览器窗口某个位置不动
    eg:小米网右下方多个小图标
  
position: relative;
position: relative;
position: absolute;
position: fixed;

13.z-index

<style>
        .cover {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: rgba(128,128,128,0.4);
            z-index: 999;
        }
        .modal {
            height: 200px;
            width: 400px;
            background-color: white;
            position: fixed;
            top: 50%;
            left: 50%;
            z-index: 1000;
            margin-top: -100px;
            margin-left: -200px;
        }
    </style>
    <div class="cover"></div>
    <div class="modal">
        <p>username:<input type="text"></p>
        <p>password:<input type="text"></p>
        <button>提交</button>
    </div>

opacity既可以改变颜色也可以改变文本
而rgba只针对颜色

原文地址:https://www.cnblogs.com/yangmeichong/p/13958773.html