前端三刺客---CSS

CSS

层叠样式表 (Cascading Style Sheets)
CSS能对网页中元素位置的排版进行像素级的精准控制, 从而实现美化页面的效果

基本语法规范

选择器 + {声明}

<style>
      div {
        color: red;
      }
</style>

1. 此处的 div 就是一个选择器, 这个选择器决定修改div
2. color: red; 就是声明. 声明是使用键值对的格式. 使用 ; 区分键值对. 使用 : 区分建和值
3. style标签可以放入Html的任何位置中

CSS的引入方式

1.内部样式表
通过 style 标签来写CSS, 并将style放入html的任何位置中(一般放在head中)

  <head>
    <style>
      div {
        color: red;
      }
    </style>
  </head>
  <body>
    <div>
      <span>1</span>
      <span>2</span>
      <span>3</span>
    </div>
  </body>

在这里插入图片描述

2.内联样式表
通过style属性来指定某个标签的属性, 只针对当前标签

<div style="color: green">
头上不戴绿, 生活过不去
</div>

在这里插入图片描述

3.外部样式
通过创建一个专门的css文件, 并通过link标签将css引入html中
html:
在这里插入图片描述
css:
在这里插入图片描述
显示样例:
在这里插入图片描述

选择器

选择器是为了选中页面中指定的标签元素

选择器种类

基础选择器

1.标签选择器

可以快速将同一类型的标签选择出来

<style>
      div {
        color: red;
      }
</style>
<div>我是红色</div>

在这里插入图片描述

2.类选择器

可以差异化的表示不同的标签, 可以使不同的标签使用同一个类选择器标签.

  1. 类名用.开通
  2. 标签使用class来调用类
  3. 一个类可以被多个标签使用, 一个标签也可以使用多个类
<style>
      .one {
        color: red;
      }
</style>
<div class="one">我是红色</div>

在这里插入图片描述

3.id选择器

1.用#来表示id选择器
2.id选择器的值和html中的某个标签的id相同
3.id是唯一的, 故id选择器只能被一个标签使用

<style>
      #one {
        color: green;
      }
</style>
<div id="one">我是绿色</div>

在这里插入图片描述

4.通配符选择器

通过 * 来选择页面中的所有标签

<style>
      * {
        color: green;
      }
</style>
<div>我绿了</div>
<p>我也绿了</p>

在这里插入图片描述

复合选择器

后代选择器

通过元素的组合, 可以选中某个元素的后代(儿子, 孙子)元素

<style>
      ul li {
        color: red;
      }
</style>
    <ul>
      <li>我又红了</li>
      <li>俺也是</li>
    </ul>

在这里插入图片描述

子选择器

通过>将元素组合, 不过只可以指定某个元素的儿子元素

<style>
      .one>a {
        color: red;
      }
</style>
    <ul class="one">
      <li><a href="#">我是链接</a></li>
      <a href="#">我也是链接</a>
    </ul>

只有作为儿子的a标签变色了, 作为孙子的a标签并没有变色.

并集选择器

并集选择器用于选择多个标签.
1.通过,分割多个元素
2.表示同时选择

<body>
    <style>
      div,
      h1 {
        color: green;
      }
    </style>

    <div>我绿了</div>
    <h1>我又绿了</h1>
 </body>

在这里插入图片描述

伪类选择器

链接伪类选择器
a:link 选择未被访问过的链接
a:visited 选择已经被访问过的链接
a:hover 选择鼠标指针悬停上的链接
a:active 选择活动链接(鼠标按下了但是未弹起)

<body>
    <style>
      a:link {
        color: black;
      }

      a:visited {
        color: green;
      }

      a:hover {
        color: pink;
      }

      a:active {
        color: brown;
      }
    </style>

    <a href="#">看我的颜色变化</a>
  </body>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

字体属性

设置字体

font-family

<body>
    <style>
      div {
        font-family: '宋体';
      }

      p {
        font-family: '微软雅黑';
      }
    </style>

    <div>我是宋体</div>
    <p>我是微软雅黑</p>
  </body>

在这里插入图片描述

设置大小

font-size

<body>
    <style>
      div {
        font-family: '宋体';
        font-size: 50px;
      }

      p {
        font-family: '微软雅黑';
        font-size: 20px;
      }
    </style>

    <div>我是宋体</div>
    <p>我是微软雅黑</p>
  </body>

在这里插入图片描述

设置粗细

font-weight
可以使用数字表示粗细, 取值100->900, 700bold, 400normal

<body>
    <style>
      div {
        font-family: "宋体";
        font-size: 50px;
        font-weight: 700;
      }

      p {
        font-family: "微软雅黑";
        font-size: 20px;
        font-weight: 100;
      }
    </style>

    <div>我是宋体</div>
    <p>我是微软雅黑</p>
  </body>

在这里插入图片描述

文字样式

变倾斜: font-style: italic;
取消倾斜: font-style: normal;

<body>
    <style>
      div {
        font-family: "宋体";
        font-size: 50px;
        font-weight: 700;
        font-style: italic;
      }

      p {
        font-family: "微软雅黑";
        font-size: 20px;
        font-weight: 100;
      }
    </style>

    <div>我是宋体</div>
    <p>我是微软雅黑</p>
</body>

在这里插入图片描述

设置文本颜色

可以使用 R(red) G(green) B(blue) 色光三原色来表示颜色 每种数值取值
0->255

<body>
    <style>
      div {
        font-family: "宋体";
        font-size: 50px;
        font-weight: 700;
        font-style: italic;
        color: rgb(255, 0, 0);
      }

      p {
        font-family: "微软雅黑";
        font-size: 20px;
        font-weight: 100;
        color: rgb(0, 100, 255);
      }
    </style>

    <div>我是宋体</div>
    <p>我是微软雅黑</p>
</style>

在这里插入图片描述

文本属性

文本对齐

控制文本或图片的水平方向对齐方式
text-align: center 居中对齐
text-align: left 靠左对齐
text-align: right 靠右对齐

<body>
    <style>
      div {
        font-family: "宋体";
        font-size: 50px;
        font-weight: 700;
        font-style: italic;
        color: rgb(255, 0, 0);
        text-align: center;
      }

      p {
        font-family: "微软雅黑";
        font-size: 20px;
        font-weight: 100;
        color: rgb(0, 100, 255);
        text-align: right;
      }
    </style>

    <div>我是宋体</div>
    <p>我是微软雅黑</p>
  </body>

在这里插入图片描述

文本装饰

text-decoration: underline 设置下划线
text-decoration: none 取消下划线, 常用于取消链接下面的下划线
text-decoration: overline 设置上划线
text-decoration: line-through 删除线

<body>
    <style>
      .class1 {
        text-decoration: underline;
      }

      .class2 {
        text-decoration: none;
      }

      .class3 {
        text-decoration: overline;
      }

      .class4 {
        text-decoration: line-through;
      }
    </style>

    <div class="class1">下划线</div>
    <a href="#" class="class2">取消下划线的链接</a></br></br>
    <div class="class3">上划线</div>
    <div class="calss4">删除线</div>
    
  </body>

在这里插入图片描述

文本缩进

text-indent: 值
单位为px 或 em , 一个em就是当前文字的大小

<body>
    <style>
      .class1 {
        text-indent: 2em;
      }

      .class2 {
        text-indent: -2em;
      }

      
    </style>

    <p class="class1">我缩进了两个字</p>
    <p class="class2">我负缩进了两个字</p>
    
  </body>

在这里插入图片描述

设置行高

line-height: 值 单位:px

<body>
    <style>
      .class1 {
        text-indent: 2em;
        line-height: 200px;
      }

      .class2 {
        text-indent: -2em;
        line-height: 20px;
      }

      
    </style>

    <p class="class1">我缩进了两个字</p>
    <p class="class2">我负缩进了两个字</p>
    
  </body>

在这里插入图片描述

背景属性

背景颜色

background-color: [指定颜色]

  <body>
    <style>
      .class1 {
        background-color: red;
        line-height: 200px;
      }

      .class2 {
        background-color: blue;
        line-height: 20px;
      }

      
    </style>

    <p class="class1">红色背景</p>
    <p class="class2">蓝色背景</p>
    
  </body>

在这里插入图片描述

背景图片

background-image: url(…); 来描述图片的路径

<body>
    <style>
      .class1 {
        background-image: url(/WEB2022/afd421e401275a37fc15f9f77805f530.jpeg);

        line-height: 200px;
      }

      .class2 {
        background-color: blue;
        line-height: 20px;
      }

      
    </style>

    <p class="class1">背景图片</p>
    
  </body>

在这里插入图片描述

背景平铺

background-repeat: repeat; 平铺
background-repeat: no-repeat; 不平铺
background-repeat: repeat-x; 水平平铺
background-repeat: repeat-y; 垂直平铺

<body>
    <style>
      .class1 {
        background-image: url(/WEB2022/a5107469714be407dcd267fda2f0e77c.jpeg);
        background-repeat: repeat-y;
        line-height: 1000px;
      }

      .class2 {
        background-color: blue;
        line-height: 20px;
      }

      
    </style>

    <p class="class1">背景图片</p>
    
  </body>

在这里插入图片描述

背景位置

background-position: left | right | top | bottom

背景尺寸

background-size: length 具体数值
background-size: percentage 百分比
percentage: cover 是背景图片完全覆盖背景区域
percentage: contain 图像扩展至最大尺寸

 <body>
    <style>
      .class1 {
        background-image: url(/WEB2022/a5107469714be407dcd267fda2f0e77c.jpeg);
        background-repeat: repeat-y;
        background-size: cover;
        line-height: 50px;
      }

      .class2 {
        background-color: blue;
        line-height: 20px;
      }

      
    </style>

    <p class="class1">背景图片</p>
    
  </body>

在这里插入图片描述

圆角矩形

border-radius 设置圆角

 <body>
    <style>
      div{
          width: 200px;
          height: 200px;
          background-color: red;
          color: black;
          border-radius: 20px;
      }
  </style>
  <div>
    变成圆角了
  </div>
  </body>

在这里插入图片描述

元素的显示模式

块级元素

h1 - h6
p
div
ul
ol
li

特点: 独占一行
高度, 宽度, 内外边距, 行高都可以控制.
是一个容器(盒子), 里面可以放行内和块级元素.

行内元素

a
strong
b
em
i
del
s
ins
u
span

特点: 不独占一行, 一行可以显示多个
设置高度, 宽度, 行高无效
左右外边距有效(上下无效). 内边距有效.
默认宽度就是本身的内容
行内元素只能容纳文本和其他行内元素, 不能放块级元素

行内元素和块级元素的区别

块级元素独占一行, 行内元素不独占一行
块级元素可以设置宽高, 行内元素不能设置宽高.
块级元素四个方向都能设置内外边距, 行内元素垂直方向不能设置.

改变显示模式

通过display改变元素的显示模式
display: block 改成块级元素
display: inline 改成行内元素
display: inline-block 改成行内块元素

<body>
    <style>
      div{
          display: inline;
      }
  </style>
  <div>
    变成圆角了
  </div>
  <div>
    同一行了
  </div>
  </body>

在这里插入图片描述

盒模型

每一个Html元素都相当于一个矩形, 由 (边框border) (内容 content) (内边padding) (外边距 margin) 组成
在这里插入图片描述

边框

通过border来设置, 有border-width(粗细) border-style(样式) border-color(颜色) 三个属性
样式又有solid 实线边框 dashed 虚线边框 dotted 点线边框

<body>
    <style>
      div {
       border: 1px solid red;
      }
    </style>
    <div>我有框框了</div>
  </body>

在这里插入图片描述

边框会撑大盒子

<body>
    <style>
      div {
        width: 100px;
        height: 100px;
       border: 10px solid red;
      }
    </style>
    <div>我有框框了</div>
  </body>

我们看到设置的宽高 是100px
但实际是:
在这里插入图片描述
可以通过 box-sizing 属性可以修改浏览器的行为, 使边框不再撑大盒子.

<body>
    <style>
      * {
        box-sizing: border-box;
      }

      div {
        width: 100px;
        height: 100px;
       border: 10px solid red;
      }
    </style>
    <div>我有框框了</div>
  </body>

此时边框就不会撑大盒子了
在这里插入图片描述

内边距

通过 padding 来设置边框和内容之间的距离
默认内容是顶着边框来放置的. 用 padding 来控制这个距离
可以给四个方向都加上边距
padding-top
padding-bottom
padding-left
padding-right

外边距

控制盒子和盒子之间的距离.
可以给四个方向都加上边距
margin-top
margin-bottom
margin-left
margin-right

块级元素水平居中

把水平方向margin设为auto 可以实现块级元素居中

弹性布局

首先先来看这一段代码及其效果,

<body>
    <style>
      div {
        width: 100%;
        height: 150px;
        background-color: red;
      }

      div > span {
        background-color: green;
        width: 100px;
      }
    </style>

    <div>
      <span>1</span>
      <span>2</span>
      <span>3</span>
    </div>
  </body>

效果:
在这里插入图片描述
我们再给div加上display:flex后
在这里插入图片描述
再给 div 加上 justify-content: space-around; 此时效果为
在这里插入图片描述
把 justify-content: space-around; 改为 justify-content: flex-end; 可以看到此时三个元素在
右侧显示了.
在这里插入图片描述

flex布局基本概念

flex 是 flexible box 的缩写. 意思为 “弹性盒子”.
任何一个 html 元素, 都可以指定为 display:flex 完成弹性布局.
flex 布局的本质是给父盒子添加 display:flex 属性, 来控制子盒子的位置和排列方式.

基础概念:
被设置为 display:flex 属性的元素, 称为 flex container
它的所有子元素立刻称为了该容器的成员, 称为 flex item
flex item 可以纵向排列, 也可以横向排列, 称为 flex direction(主轴)

常用属性

justify-content

设置主轴上子元素的排列方式
stretch 行拉伸占据剩余空间::
center为设置到中间位置:
在这里插入图片描述
space-between 为均匀分布到弹性容器中:

在这里插入图片描述
space-around 也是均匀分布到弹性容器中, 不过两端各占一半:
在这里插入图片描述

align-items

使用 align-items 来完成垂直方向上的排列
通过start来完成靠上布局:
在这里插入图片描述

通过center来完成居中布局:
在这里插入图片描述
通过end完成靠下布局:
在这里插入图片描述

flex布局操作

  1. 设置为弹性布局 display: flex实现
  2. 水平方向布局 justify-content: 实现
  3. 垂直方向布局 align-items: 实现
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值