ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

前端基础之CSS

2022-02-28 19:31:29  阅读:143  来源: 互联网

标签:color 标签 前端 基础 red background div 选择器 CSS


CSS

 

CSS简介

  层叠样式表,就是给HTML标签修改样式的

语法结构

  选择器 {

    属性名1:属性值1;

    属性名2:属性值2

  }

注释语法

  /*注释内容*/ 

引入方式

  1.style内部直接编写css代码

    平时学习、练习的时候推荐使用

  2.link标签引入外部css文件

    正式工作、实际生产环境推荐使用

  3.标签内直接书写

    一般情况下不推荐使用 容易造成冗余现象

  注:单独开设的css文件内代码也是非常多的 可以借助于注释管理(/*导航条样式*/,/*侧边栏样式*/)

基本选择器

  1、标签选择器>>>:通过标签名直接查找

/*查找所有的div标签*/
div {  
    color: red;
  }

  2、类选择器(关键符号为句点符.)>>>:通过class值查找标签

/*查找所有含有c1样式类的标签*/
.c1 {
    color: red;
  }

  3、id选择器(关键符号为警号#)>>>:通过id值查找标签

/*查找id为d1的标签*/
#d1 {
    color: orange;
  }

  4、通用选择器(了解)

/*body内所有的标签*/
* {
    color: darkgray;
  }

组合选择器

'''
为了区分嵌套标签之间的关系 我们发明了一种称呼
    <div>
        <p>
            <span></span>
        </p>
    </div>
span是p的儿子 是div的孙子也可以说是div的后代
p是div的儿子也是div后代 是span的父亲
div是p的父亲是span的爷爷 也可以说是他们的祖先
'''

  1、后代选择器(特征为空格)

/*查找div内部所有的后代span*/
div span {  
    color: red;
    }

  2、儿子选择器(特征>)

/*查找div内部所有的儿子span*/
div > span { 
  color: greenyellow;
  }

  3、毗邻选择器(特征为+)

/*查找同级别下面紧挨着的第一个span(不能有其他标签间隔)*/
div + span {  
  color: pink;
  }

  4、弟弟选择器(特征为~)

/*查找同级别下面所有的span(不需要紧挨着)*/
div ~ span {  
  color: deeppink;
  }

属性选择器

  标签可以有默认的属性也可以自定义属性

<p id="d1" class="c1" name="jason" pwd="123">123</p>
 

[name] {  /*查找含有name属性名的标签*/
            color: red;
        }

[name='jason'] {  /*查找含有name属性名并且值为jason的*/
            color: red;
        }

p[name='jason'] {  /*查找含有name属性名并且值为jason的p*/
            color: red;
        }

分组与嵌套

  1、多个相同选择器并列使用

div,span,p {  /*查找div或者span或者p*/
            color: red;
        }

  2、多个不同选择器并列使用

div,#d1,.c1 {  /*标签查找div id查找d1 类查找c1*/
            color: red;
        }

  3、不并列同样可以使用组合选择器

.c1 p {   /*查找class为c1的后代p标签*/
            color: red;
        }

  4、直接筛选

div#d1 {  /*查找id为d1的div标签*/
   color: red;
  }
div.c1 {  /查找class为c1的div标签/
  color: red;
  }

  5、练习题

#d1>div>.c1>span.c2
    查找id为d1的标签内部的儿子div
    并且在儿子div内部查找class为c1的儿子标签
    并且在该儿子内部查找class为c2的儿子span

伪类选择器

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

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

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

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

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

伪元素选择器

# 首字调整>>>:也是一种文档布局的方式
p:first-letter {
            font-size: 48px;  /*字体大小*/
            color: red;
        }
# 在文本的前面通过css动态渲染文本>>>:特殊文本无法选中
p:before {
            content: '嘿嘿';
            color: red;
        }
<p>::before言而有信 品行端正 光明磊落 待人以诚</p>
# 在文本的后面通过css动态渲染文本>>>:特殊文本无法选中
p:after {
            content: '呵呵';
            color: greenyellow;
        }

选择器的优先级

  1、相同选择器不同导入方式

    选择器系统遵循就进原则 从上往下谁离标签更近谁说了算

  2、不同选择器不遵循就近原则>>>:优先级

    行内选择器 > id选择器 > 类选择器 > 标签选择器

字体相关

  1、宽和高

/*只有块儿级标签可以设置 行内标签无法设置*/
p {
    height: 1000px;
    width: 50px;
}

  2、字体大小

font-size: 99px;  # 字体大小一般有固定的大小参考(肉眼适应)

  3、粗细

font-weight: bolder;  
font-weight: lighter;

  4、文本颜色

color:red;                # 第一种
color:4e4e4e;             # 第二种
color:rgb(88,88,88)       # 第三种
    rgba(88,88,88,0.2)  # 最后一个参数调整透明度(0-1)        

  5、文字对齐

text-align: center;  # 居中展示

  6、文字装饰(很常用!!!)

text-decoration: none;  # 主要用于去除a标签默认的下划线

  7、首行缩进

text-indent: 32px;  # 默认文字大小是16px

背景属性

/*背景颜色*/
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;

  一个有趣的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>滚动背景图示例</title>
    <style>
        * {
            margin: 0;
        }
        .box {
            width: 100%;
            height: 500px;
            background: url("http://gss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D450%2C600/sign=e9952f4a6f09c93d07a706f3aa0dd4ea/4a36acaf2edda3cc5c5bdd6409e93901213f9232.jpg")  center center;
            background-attachment: fixed;
        }
        .d1 {
            height: 500px;
            background-color: tomato;
        }
        .d2 {
            height: 500px;
            background-color: steelblue;
        }
        .d3 {
            height: 500px;
            background-color: mediumorchid;
        }
    </style>
</head>
<body>
    <div class="d1"></div>
    <div class="box"></div>
    <div class="d2"></div>
    <div class="d3"></div>
</body>
</html>

边框属性

p {
/*border-left-color: red;*/
/*border-left-style: solid;*/
/*border-left-width: 3px;*/
/*多个属性有相同的前缀 一般都可以简写*/
/*border-left: 5px red solid; !*没有顺序*!*/
/*border-top:orange 10px dotted;*/
/*border-right: black dashed 5px;*/
/*border-bottom: deeppink 8px solid;*/
/*多个属性有相同的前缀 一般都可以简写*/
border: 5px red solid; /*上下左右一致*/
}
div {
height: 500px;
width: 500px;
border: 5px solid red;
/*画圆*/
border-radius: 50%;
}  

  边框样式

   圆

div {
    height: 500px;
    width: 500px;
    border: 5px solid red;
    /*画圆*/
    border-radius: 50%;
}

display属性

  用于控制HTML元素的显示效果

 

  display:"none"与visibility:hidden的区别:

    visibility:hidden:    可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局

    display:none:   可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失

div {
            display: inline;  /*行内*/
}

span {
            /*display: block;  !*块级*!*/
            display: none;
            /*
            隐藏标签 页面上看不见也不再占用页面位置
            但是通过浏览器查找标签是可以看到的
            到后面学习django会讲跨站请求伪造(钓鱼网站)
            */
        }

p {
            display: inline-block;
            /*
            具备块级标签可以修改长宽的特性
            也具备行内标标签文本多大就占多大的特性
            */
        }

盒子模型

  1、快递盒为例

1.快递盒与快递盒之间的距离       外边距(标签之间的距离)
2.快递盒的厚度                 边框
3.内部物品到盒子的距离          内边距(文本内容到边框的距离)
4.物品本身的大小               文本大小

  1、外边距(标签之间的距离)

margin简写
margin:0px;               # 上下左右都一致
margin:10px 10px;         # 第一个控制上下 第二个控制左右
margin:20px 10px 20px;    # 上 左右 下
margin:10px 2px 3px 5px;  # 上 右 下 左

  2、内边距(文本内容到边框的距离)

padding 简写
padding:0px;                # 上下左右都一致
padding:10px 10px;          # 第一个控制上下 第二个控制左右
padding:20px 10px 20px;     # 上 左右 下
padding:10px 2px 3px 5px;   # 上 右 下 左

 

   3、ody标签默认自带8px的外边距 在编写的时候应该提前去掉

body {
    margin: 0;
}

浮动(float)

  浮动主要就是用作于页面布局

  1、浮动的两个特点    

  •   浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
  • 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

  2、三种取值

    left:向左浮动

    right:向右浮动

    none:默认值,不浮动

  3、浮动带来的负面影响

    会造成父标签塌陷

  4、解决浮动的负面影响

    4.1、再写一个div撑场面(不可取)

    4.2、关键字clear(可以使用)

    4.3、通用解决策略(推荐使用):只要父标签塌陷就使用

.clearfix:after {
    content: '';
    clear: both;
    display: block;
    }
# 谁塌陷就给谁加class属性

  5、clear

    clear属性规定元素的哪一侧不允许其他浮动元素。

   注意:clear属性只会对自身起作用,而不会影响其他元素。

定位

  1、静态定位 static

    所有的标签默认都是静态定位即不能改变位置

  2、相对定位 relative

    相对标签原来的位置做定位

  3、绝对定位  absolute  

    相对已经定位过的父标签做定位(没有则参考body标签)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>绝对定位</title>
    <style>
        .c1 {
            height: 100px;
            width: 100px;
            background-color: red;
            float: left;
        }
        .c2 {
            height: 50px;
            width: 50px;
            background-color: #ff6700;
            float: right;
            margin-right: 400px;
            position: relative;

        }
        .c3 {
            height: 200px;
            width: 200px;
            background-color: green;
            position: absolute;
            top: 50px;
        }
    </style>
</head>
<body>
<div class="c1"></div>
<div class="c2">
    <div class="c3"></div>
</div>

</body>
</html>

  4、固定定位  fixed

    相对浏览器窗口做定位

<!DOCTYPE html>
<html lang="en">
<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;
    }

    .d1 {
      height: 1000px;
      background-color: #eeee;
    }

    .scrollTop {
      background-color: darkgrey;
      padding: 10px;
      text-align: center;
      position: fixed;
      right: 10px;
      bottom: 20px;
    }
  </style>
</head>
<body>
<div class="d1">111</div>
<div class="scrollTop">返回顶部</div>
</body>
</html>

  5、如何使用css完成定位  

    定位关键字position

    位置关键字left、right、top、bottom

是否脱离文档流

  标签位置改变之后 原来的位置是否会空出来,如果空出来了被其他标签自动占有 那么表示脱离否则不脱离

  1、脱离文档流

    浮动、绝对定位、固定定位

  2、不脱离文档流

    相对定位

溢出属性

  圆形头像

#d1 {
            width: 200px;
            height: 200px;
            border: 3px solid darkgray;
            border-radius: 50%;
            overflow: hidden;
        }
#d1 img {
            /*max-width: 100%;*/
            width: 100%;
        }

z-index属性

#i2 {
  z-index: 999;
}

  设置对象的层叠顺序。

  1、z-index 值表示谁压着谁,数值大的压盖住数值小的,

  2、只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index

  3、z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。

  4、从父现象:父亲怂了,儿子再牛逼也没用

<!DOCTYPE html>
<html lang="en">
<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>
    .cover {
      background-color: rgba(0,0,0,0.65);
      position: fixed;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      z-index: 998;
    }

    .modal {
      background-color: white;
      position: fixed;
      width: 600px;
      height: 400px;
      left: 50%;
      top: 50%;
      margin: -200px 0 0 -300px;
      z-index: 1000;
    }
  </style>
</head>
<body>

<div class="cover"></div>
<div class="modal"></div>
</body>
</html>

透明度

  1、rgba  只影响颜色

rgba(124,124,124,0.5)

  2、opacity   影响颜色和字体

opacity:0.5

综合示例

  顶部导航菜单

<!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>li标签的float示例</title>
  <style>
    /*清除浏览器默认外边距和内填充*/
    * {
      margin: 0;
      padding: 0;
    }
    a {
      text-decoration: none; /*去除a标签默认的下划线*/
    }

    .nav {
      background-color: black;
      height: 40px;
      width: 100%;
      position: fixed;
      top: 0;
    }

    ul {
      list-style-type: none; /*删除列表默认的圆点样式*/
      margin: 0; /*删除列表默认的外边距*/
      padding: 0; /*删除列表默认的内填充*/
    }
    /*li元素向左浮动*/
    li {
      float: left;
    }

    li > a {
      display: block; /*让链接显示为块级标签*/
      padding: 0 15px; /*设置左右各15像素的填充*/
      color: #b0b0b0; /*设置字体颜色*/
      line-height: 40px; /*设置行高*/
    }
    /*鼠标移上去颜色变白*/
    li > a:hover {
      color: #fff;
    }

    /*清除浮动 解决父级塌陷问题*/
    .clearfix:after {
      content: "";
      display: block;
      clear: both;
    }
  </style>
</head>
<body>
<!-- 顶部导航栏 开始 -->
<div class="nav">
  <ul class="clearfix">
    <li><a href="">玉米商城</a></li>
    <li><a href="">MIUI</a></li>
    <li><a href="">ioT</a></li>
    <li><a href="">云服务</a></li>
    <li><a href="">水滴</a></li>
    <li><a href="">金融</a></li>
    <li><a href="">优品</a></li>
  </ul>
</div>
<!-- 顶部导航栏 结束 -->
</body>
</html>

 

END

 

标签:color,标签,前端,基础,red,background,div,选择器,CSS
来源: https://www.cnblogs.com/Snailsys/p/15894034.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有