css: 层叠样式表

1. css引入方式

  • 行内样式

    <div style='color:red;'>mjj</div>
  • 内嵌式

    在head标签内部书写style

    <style>
    /*css代码*/
    #box{
    background-color: greenyellow;
    }
    </style>
  • 外接式

    <link href='css/index.css' rel='stylesheet'>

三种引入方式的优先级:

  • 1.行内样式>内嵌式和外接式,
  • 2.内嵌和外接要看谁在后面,在后面的优先级高

2. css选择器

2.1 基础选择器

1.id选择器

特定属性的元素(标签)、唯一的

语法: #xxx

2.类选择器

可以重复归类,类也可以设置多个

语法: .xxx

<style>
  .box{
    width:200px;
    height:200px;
    background-color:yellow;
 }
<!--单独设置 类1 中某个样式与 类2 不一样-->
  .active{
    border-radius: 200px; <!--设置盒子边框-->
 }
</style>
<div class='box active'></div> <!--类1-->
<div class='box'></div> <!--类2-->
<div class='box'></div> <!--类2-->

3.标签选择器

标签选择器有:div{} 、p{} 、ul 、ol ...

<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
a{
/*设置文本修饰*/
text-decoration: none;
}
input{
border:none;
outline:none;
}
#user{
border: 1px solid #555;
height: 60px;
font-size: 20px;
padding: 0 10px;
}
.box {
width: 200px;
height: 200px;
background-color: yellow;
}
.active {
border-radius: 4px;
}
#box{
color: red;
}
div{
border:1px solid #000;
}
</style>
</head>
<body>
<div class='box active' id="box">wusir</div>
<hr>
<div class='box'></div>
<hr>
<div class='box'></div>
<a href="">百度一下</a>
<input type="text" id="user">
</body>

2.2 高级选择器

1.后代选择器

语法:

/*用空格连接*/
div p{
  color: red;
}

2.子代选择器

语法:

/*用>连接*/
div>p{
  color: red;
}

3.组合选择器

常用于重置样式

语法:

/*用,连接*/
div,p,body,html,ul,ol....{
  padding: 0;
  margin: 0;
}
input,textarea{
border:none;
outline: 0;
}

如何重置网页样式?

html,body,p,ul,ol{
margin: 0;
padding: 0;
}
/*通配符选择器 */
*{
margin: 0;
padding: 0;
}
a{
text-decoration: none;
}
/*清除input和textarea标签的默认边框和外线*/
input,textarea{
border: none;
outline: none;
}

4.交集选择器

span.active

语法:

div.active{
 
}

2.3 伪类选择器

对于a标签,如果想设置a标签的样式,要作用于a标签上,对于继承性来说,a标签不起作用的

“爱恨准则” — LoVe HAte :L - link 、V - visited 、H - hover 、A - active

/*LoVe HAte*/
/*a标签没有被访问时候设置的属性*/
a:link{
/*color: red;*/
}
/*a标签被访问过后设置的属性*/
a:visited{
color:yellow;
}
/*a标签被鼠标悬浮时设置的属性*/
a:hover{
color: deeppink;
}
/*a标签被摁住的时候设置的属性*/
a:active{
color: deepskyblue;
}

2.4 属性选择器

<style>
input[type='text']{
background-color: red;
}
input[type='checkbox']{ }
input[type='submit']{ }
</style>

2.5 伪元素选择器

<style>
/*设置内容中的第一个文字*/
p::first-letter{
color: red;
font-size: 20px;
font-weight: bold;
}
/*在内容前加一个@*/
p::before{
content:'@';
}
/*::after是解决浮动布局常用的一种方法*/
/*在内容后面加一个$*/
p::after{
/*通过伪元素添加的内容为行内元素*/
content:'$';
}
</style>

注意:

  • 1.通过伪元素添加的内容为行内元素
  • 2.::after是解决浮动布局常用的一种方法
  • 3.1个':'是伪类选择器,2个':'是伪元素选择器

3. css的盒模型

1.盒子模型的属性及含义:

  • width: 内容的宽度

  • height:内容的高度

  • padding:内边距(又叫内填充),盒子的border到内容的距离

    • 1.单个属性分别设置不同方向的padding

      padding-top  顶部填充的距离
      padding-right 右侧填充的距离
      padding-bottom 底部填充的距离
      padding-left 左侧填充的距离
    • 2.综合属性,多个属性用空格隔开。

      /*综合设置:四个方向的内边距为:*/
      padding: 20px; /*盒子的上下内边距设置为第一个数值,左右内边距设置第二个数值*/ /*上 左右 下*/
      padding: 0 20px 30px; /*上 右 下 左*/
      padding: 10px 20px 30px 40px;
  • border:盒子的边框

    boder边框三要素:粗细 、线性样式 、颜色

    • 1.按照三要素书写border
    border-width:3px;  /*边框四边线的粗细*/
    border-style:solid; /*边框线样式*/
    border-color:red; /*边框线颜色*/
    /*上面三句代码相当于一句代码:*/
    border:3px solid red; /*同样,也可以分别设置边框四个方向的粗细 线性样式 颜色,跟padding的四个方向一样。*/
    /*上下5px 左右10px*/
    border-width:5px 10px;
    /*上:实线 右:点状线 下:双线 左:虚线*/
    border-style: solid dotted double dashed;
    /*上:红色 左右:绿色 下:黄色*/
    border-color: red green yellow;
    • 2.按照方向划分
    /*boder的顶部边框*/
    border-top-width: 10px;
    border-top-color: red;
    border-top-style: solid;
    /*可以简写成*/
    border-top: 10px solid red; /*boder的右侧边框*/
    border-right-width: 10px;
    border-right-color: red;
    border-right-style: solid;
    /*可以简写成*/
    border-right: 10px solid red; /*boder的底部边框*/
    border-bottom-width: 10px;
    border-bottom-color: red;
    border-bottom-style: solid;
    /*可以简写成*/
    border-bottom: 10px solid red; /*boder的左侧边框*/
    border-left-width: 10px;
    border-left-color: red;
    border-left-style:solid;
    /*可以简写成*/
    border-left: 10px solid red;
    • 3.清除默认边框

      清除某些标签默认的边框 :border:none; 或者 border:0;

      清除某些标签默认的外边框 :outline: none; 或者 border:0;

    • 4.边框属性

      • 1.设置为圆角或者圆

        语法: border-radius:20px;

        <style>
        #box{
        width: 300px;
        height: 300px;
        background-color: red;
        /*border-radius: 50%;*/
        border-radius: 4px;
        border: 3px solid blue;
        }
        #box:hover{
        background-color: #000;
        }
        </style>

        除了同时设置四个圆角以外,还可以单独对每个角进行设置。对应四个角,CSS3提供四个单独的属性:

        • border-top-left-radius
        • border-top-right-radius
        • border-bottom-right-radius
        • border-bottom-left-radius

        这四个属性都可以同时设置1到2个值。如果设置1个值,表示水平半径与垂直半径相等。如果设置2个值,第一个值表示水平半径,第二个值表示垂直半径。

      • 2.设置阴影效果

        语法:box-shadow: h-shadow v-shadow blur color inset;

        h-shadow 水平阴影的位置、距离

        v-shadow 垂直阴影的位置、距离

        blur 模糊距离、程度

        color 阴影的颜色

        inset 将外部阴影 (outset,默认值) 改为内部阴影。

        <style>
        .box{
        width: 200px;
        height: 200px;
        background-color: #000;
        margin: 100px auto;
        position: relative;
        transition: all .2s linear;
        }
        .box:hover{
        top: -2px;
        box-shadow: 0 0 20px red;
        }
        </style>
  • margin:盒子的外边距,一个盒子到另一个盒子的距离。

    • 水平方向的外边距

      /*左外边距*/
      margin-left: 30px;
      /*右外边距*/
      margin-right: 20px;
    • 垂直方向外边距

      margin在水平方向上不会出现问题,但在垂直方向上会出现外边距合并(或重叠)现象,这种现象叫做塌陷问题,会以设置的最大的magrin距离为基准。

      如何避免出现这种问题呢?

      • 为了避免出现塌陷问题,只需要设置一个盒子的一个方向的margin即可。
      /*顶部外边距*/
      margin-top:50px;
      /*底部外边距*/
      margin-bottom:30px;
    • 也可以综合设置水平与垂直方向的外边距

      /*水平居中*/
      margin:0 auto;

2.盒子模型图

最新文章

  1. C语言中函数的传入值与传出值
  2. jquery 模糊查询下拉框
  3. C#导入Exel
  4. SSH环境搭建步骤解析
  5. SSIS 学习(1): 概要【转】
  6. (转)Android Touch事件传递机制
  7. HttpClient3.1 警告: Cookie rejected:
  8. 批量设置AssetBundleName
  9. Course Schedule II 解答
  10. [M]带属性块参照的转换
  11. Ubuntu14.04双网卡主备配置
  12. 使用C语言开发PHP扩展(转)
  13. elasticsearch-head安装及启动
  14. 【剑指offer】包含min函数的栈
  15. 数据分析与展示---Numpy入门
  16. 用kettle实现数据库迁移之oracle到mysql
  17. Java_Chapter6_类与对象
  18. java将list分为指定大小的新集合
  19. 数据库-identifying 与non-identifying realtionship 区别
  20. JDBCUtils工具类

热门文章

  1. 小程序开发--API之登录授权逻辑
  2. secureCRT操作redis-cli时, 不断追加ip:port
  3. Vue的axios如何全局注册
  4. git notes的用法
  5. Django开发简单采集用户浏览器信息的小功能
  6. 命令行启动python的IDLE
  7. log4j.xml简单配置实现在控制台打印sql执行语句【加注释】
  8. python学习:python的常用功能示例2
  9. git命令手册
  10. preg_replace修饰符e的用法