CSS

CSS

CSS是什么

层叠样式表 (Cascading Style Sheets).CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离.说白了就是让网页变得好看
在这里插入图片描述
什么是样式呢?
大小,位置,间距,颜色,字体,边框,背景…统称为样式,也就是描述了一个网页长啥样
什么是层叠呢?
针对一个html的元素/标签,可以同时应用多组css样式,多组样式会叠在一起(就像打游戏的叠buff的感觉),一个元素的属性,由很多方面,描述大小是一个样式,描述颜色,是一个样式,需要把这些样式都叠加起来,才能组成一个漂亮的html页面

基本语法

选择器 + {一条/N条声明}
选择器决定针对谁修改 (找谁)
声明决定修改啥. (干啥)
声明的属性是键值对. 使用 ; 区分键值对, 使用 : 区分键和值

<style>
    p {
        /* 设置字体颜色 */
        color: red;
        /* 设置字体大小 */
        font-size: 30px;
   }
</style>
<p>hello</p>

注意:
CSS 要写到 style 标签中(后面还会介绍其他写法)
style 标签可以放到页面任意位置. 一般放到 head 标签内.
CSS 使用 /* */ 作为注释. (使用 ctrl + / 快速切换) .

CSS的引入方式

和html,js类似,css也是在浏览器中运行的

1.内部样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSOne</title>
    <style>
        div
            {
                font-size: 200px;
                color: green;
            }
    </style>
</head>
<body>
    <div>
        滴滴答答滴
    </div>
</body>
</html>

在这里插入图片描述

2.外部样式

在这里插入图片描述

3.内联样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSOne</title>
   
</head>
<body>
    <div style="color: blueviolet; font-size: 200px;">
        滴滴答答滴
    </div>
</body>
</html>

在这里插入图片描述
内联样式的优先级比上面两种高
实际开发中,上述三种写法都很常见

代码风格

样式格式

  1. 紧凑风格
p { color: red; font-size: 30px;}

2,展开风格(推荐)

p {
    color: red;
    font-size: 30px;
}

样式大小写

虽然 CSS 不区分大小写, 我们开发时统一使用小写字母

空格规范

冒号后面带空格
选择器和 { 之间也有一个空格.

CSS选择器

选择器的功能

选中页面中指定的标签元素.
要先选中元素, 才能设置元素的属性.

选择器的种类

1.基础选择器
(1).标签选择器

使用标签名,把页面中所有同名标签的元素都选中了
缺点:难以针对某个元素进行个性化定制,比如下面代码想让呃呃呃变成蓝色,就不能只通过标签选择器了,需要搭配别的
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSOne</title>
   <style>
    div{
        font-size: 100px;
        color: greenyellow;
        
    }
   </style>
</head>
<body>
    <div>啊啊啊</div>
    <div>哦哦哦</div>
    <div>呃呃呃</div>
</body>
</html>

以上代码就是把所有在div标签里面的东西都变成黄绿色的了
在这里插入图片描述

(2).类选择器

CSS中创建一个类名,这个类名对应一组css属性,让指定的html元素应用这样的类名即可
注意:这里的类和java的类没有任何关系

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSOne</title>
   <style>
    /*类名就叫eee,让下面呃呃呃的div引用这个类,就可以把这个呃呃呃变成红色的了*/
    .eee{
        color: red;
    }
    div{
        font-size: 100px;
        color: greenyellow;
        
    }
   </style>
</head>
<body>
    <div>啊啊啊</div>
    <div>哦哦哦</div>
    <div class="eee">呃呃呃</div>
</body>
</html>
```![在这里插入图片描述](https://img-blog.csdnimg.cn/8678140a7c404dc9a86a0b6876221251.png)
**注意:一个类名是可以被多个标签引用的**
**可以定义很多的CSS类,每个类都是一组属性的集合**
**一个标签还可以引入多个类名,多个类名之间用空格来分割**

比如一大串字符,想让某些字符变色,咋整呢?
比如有  哦哦哦哦哦哦哦哦哦滴滴滴滴哦哦哦哦哦哦,我想让滴滴滴滴变色,加入span就好了

```css
<div>哦哦哦哦哦哦哦哦哦<span class="eee">滴滴滴滴</span>哦哦哦哦哦哦</div>

在这里插入图片描述

(3).id选择器

一个html标签,可以有一个id属性,这个属性的值作为标签的身份标识,在页面中也是唯一的,同样也可以通过id选择器,把这个指定的元素给获取到
在这里插入图片描述
上述选择器,是css中最基础的选择器,其实css还有很多复杂的“符合选择器”,这里只介绍一种

2.复合选择器

后代选择器:效果就是把上述三种选择器进行组合,同时能够体现出“标签的层次结构”
在这里插入图片描述
CSS选择器种类非常多,用法也很丰富,此处只学习上述四种写法!!!

常用元素属性

属性也就是你的{}里的键值对都能写啥,css这里的属性是非常多的,不要背,多去查,这里只介绍常见属性

字体属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSOne</title>
</head>
<body>
  <div class="one">
    啊啊啊~~~我的妻~~~王氏~宝钏~~
  </div>
  <style>
    .one{
            /*设置字体样式*/
            font-family: '微软雅黑';
            /*设置像素大小*/
            font-size: 80px;
            /*设置字体粗细,这个值的范围是100-900,数越大,字越粗*/
            font-weight: 900;
            /*让字体倾斜*/
            font-style: italic;
         
    }
  </style>
</body>
</html>

以上几个属性的叠加,构造成了下图
在这里插入图片描述

文本相关

.two{
        /* 文本颜色 */
        color: brown;
        /* 文本对齐:左对齐(left),右对齐(right),居中(center) */
        text-align: left;
        /* 文本装饰:加个下划线啥的 */
        text-decoration: underline;
        /* 文本缩进,首行缩进多大空间 */
        text-indent: 20px;
         /* 行高(行间距) */
        line-height: 300px;
    }

在这里插入图片描述
其中color属性的值,有很多种写法
1.直接写一些表示颜色的单词
2.使用rgb的方式来表示
rgb–red green blue
每个分量都是一个字节,取值范围是0-255

color: rgb(255,0,0);

通过上述的操作,就可以调出一些非常好看的颜色
3.使用十六进制的方式表示(本质也是RGB)

color: #ff0000;
/*红色*/

背景属性

拿个蔡徐坤的照片举例

   .three{
        font-size: 100px;
        width: 2000px;
        height: 1600px;
        color: red;
        /* 设置背景颜色 */
        background-color: pink;
        /* 设置背景图片 */
        background-image: url(image/kun.png);
        /* 禁止平铺 */
        background-repeat: no-repeat;
        /* 垂直居中,水平居中 */
        background-position: center center;
        /* 设置背景大小 */
        background-size: 2000px 1600px;
    }

在这里插入图片描述

设置圆角矩形

平常的html页面都是第一种,圆角矩形的第二种
在这里插入图片描述
在这里插入图片描述

    .four {
            width: 500px;
            height: 300px;
            background-color: red;
            /* 下面是设置圆角矩形,10就是内切圆半径 */
            border-radius: 100px;
        }

在这里插入图片描述

对于后端来说,上述交代了这么多属性,不用记!!!!!!!!现在就是看一下,有个印象,之后稍微练习一下,加深一下印象就够了,过几天忘了也没啥,用的时候去查看就好了

盒子模型

在这里插入图片描述

边框

基础属性
粗细: border-width
样式: border-style, 默认没边框. solid 实线边框 dashed 虚线边框 dotted 点线边框
颜色: border-color

<div>test</div>
div {
    width: 500px;
    height: 250px;
    border-width: 10px;
    border-style: solid;
    border-color: green;
}

支持简写, 没有顺序要求

border: 1px solid red;

可以改四个方向的任意边框.

border-top/bottom/left/right

以下的代码只给上边框设为红色, 其余为蓝色.
利用到的层叠性, 就近原则的生效.

border: 1px solid blue;
border-top: red;

边框会撑大盒子
可以看到, width, height 是 500*250, 而最终整个盒子大小是 520 * 270. 边框10个像素相当于扩大了大小
通过 box-sizing 属性可以修改浏览器的行为, 使边框不再撑大盒子.

* {
    box-sizing: border-box;
}
  • 为通配符选择器.

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

内边距

padding 设置内容和边框之间的距离.
默认内容是顶着边框来放置的. 用 padding 来控制这个距离
可以给四个方向都加上边距
padding-top
padding-bottom
padding-left
padding-right
在这里插入图片描述
加上 padding 之后

div {
    height: 200px;
    width: 300px;
    padding-top: 5px;
    padding-left: 10px
}

在这里插入图片描述
此时可以看到带有了一个绿色的内边距.
注意:
整个盒子的大小从原来的 300 * 200 => 310 * 205. 说明内边距也会影响到盒子大小(撑大盒
子).
使用 box-sizing: border-box 属性也可以使内边距不再撑大盒子. (和上面 border 类似)
复合写法
可以把多个方向的 padding 合并到一起. [四种情况都要记住, 都很常见]

padding: 5px; 表示四个方向都是 5px
padding: 5px 10px; 表示上下内边距 5px, 左右内边距为 10px
padding: 5px 10px 20px; 表示上边距 5px, 左右内边距为 10px, 下内边距为 20px
padding: 5px 10px 20px 30px; 表示 上5px, 右10px, 下20px, 左30px (顺时针)
 div {
 			* {
            /* 此时边框不会撑大元素了.  */
            box-sizing: border-box;
        	}
            width: 500px;
            height: 300px;
            background-color: gray;

            margin-top: 50px; 

            border: red 20px solid; 
            /* 边框还可以分开设置 */
             border-left: red 20px solid;
            border-right: green 20px dotted;
            border-top: blue 20px dashed;
            border-bottom: orange 20px solid;

            /* 给四个方向都设置 30px 内边距 */
             padding: 30px; 
            /* 也可以给四个方向分别设置内边距 */
             padding-left: 20px;
            padding-top: 50px; 

            /* 给上下设置 30px, 左右设置 20px */
             padding: 30px 20px; 
             给四个方向分别设置. 上右下左 顺时针顺序设置的
             padding: 10px 20px 30px 40px; 
        }

外边距

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

<div class="first">蛤蛤</div>
<div>呵呵</div>
div {
    background-color: red;
    width: 200px;
    height: 200px;
}
.first {
    margin-bottom: 20px;
}

在这里插入图片描述
复合写法
规则同 padding

margin: 10px; // 四个方向都设置
margin: 10px 20px; // 上下为 10, 左右 20
margin: 10px 20px 30px; // 上 10, 左右 20, 下 30
margin: 10px 20px 30px 40px; // 上 10, 右 20, 下 30, 左 40

把margin左右方向设置成auto,可以实现让元素水平居中
如果把垂直设为auto,则不能实现元素居中

.two {
            width: 500px;
            height: 300px;
            background-color: gray;
            /* 让元素水平居中 */
            margin-left: auto;
            margin-right: auto;
        } 

在这里插入图片描述

弹性布局

刚才说,对于块级元素,默认是独占一行(垂直方向排列的),有时候想让块级元素水平排列,此时就可以使用弹性布局了
下图就是弹性布局
在这里插入图片描述
1.flex 布局基本概念
flex 是 flexible box 的缩写. 意思为 “弹性盒子”.
任何一个 html 元素, 都可以指定为 display:flex 完成弹性布局.
flex 布局的本质是给父盒子添加 display:flex 属性, 来控制子盒子的位置和排列方式.
被设置为 display:flex 属性的元素, 称为 flex container
在这里插入图片描述
某个元素一旦开启了弹性布局,此时内部的子元素就会按照水平方向排列,子元素内的子元素不受影响
flex就是弹性布局
2.justify-content
设置水平方向的排列规则,是居中,还是靠右靠左,还是分散开
在这里插入图片描述

3.align-items
设置垂直方向的排列规则
在这里插入图片描述

.one {
            width: 1000px;
            height: 300px;
            background-color: gray;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

本来是
在这里插入图片描述
弹性布局之后

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值