CSS之基础扫盲

news2024/11/28 2:34:34

  • 博主简介:想进大厂的打工人
  • 博主主页:@xyk:
  • 所属专栏: JavaEE初阶

目录

文章目录

二、CSS基础语法

2.1 CSS引入方式

2.1.1 内部样式

2.1.2 外部样式

2.1.3 内联样式

2.2 CSS选择器

2.2.1 标签选择器

2.2.2 类选择器

2.2.3 id选择器

2.2.4 通配符选择器

2.2.5 后代选择器

2.2.6 并集选择器

2.2.7 伪类选择器

三、CSS常见属性

3.1 字体相关属性

3.2 文本相关属性

3.3 背景属性

         3.4 圆角矩形

四、元素的显示模式

4.1 块级元素

4.2 行内元素

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

4.4 改变显示模式

五、盒模型

5.1 内边距

5.2 外边距

六、弹性布局


一、CSS概念及语法规范

CSS叫做 层叠样式表 (Cascading Style Sheets).

CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离.

简单来说,CSS就是给HTML化妆~~

基本语法规范:

选择器 + {一条/N条声明}

  • 选择器决定针对谁修改
  • 声明决定修改啥
  • 声明的属性是键值对. 使用 ; 区分键值对, 使用 : 区分键和值.
     

比如:

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

注意:

  • CSS 要写到 style 标签中
  • style 标签可以放到页面任意位置. 一般放到 head 标签内.
  • CSS 使用 /* */ 作为注释. (使用 ctrl + / 快速切换) .

二、CSS基础语法

2.1 CSS引入方式

2.1.1 内部样式

  • 直接将CSS嵌入到HTML中,放到<style> </style>标签里
    • 意思为div标签全部改为这个样式
<!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.0">
    <title>css练习</title>
    <style>
        div{
            color: orange;
        }
    </style>
</head>
<body>
    <div>cssTest</div>
</body>
</html>

 

2.1.2 外部样式

把CSS写成一个单独的 .css 文件,由html通过<link>标签引入

css:

div{
    color: purple;
}

html: 

<!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.0">
    <title>css练习</title>
    <link rel="stylesheet" href="./Test.css">

</head>
<body>
    <div>cssTest</div>
</body>
</html>

2.1.3 内联样式

直接把CSS属性写到html元素/标签的style属性中

<!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.0">
    <title>css练习</title>
    <link rel="stylesheet" href="./Test.css">

</head>
<body>
    <div style="color: aqua;">cssTest</div>
</body>
</html>

2.2 CSS选择器

基础选择器:单个选择器构成的

  • 标签选择器
  • 类选择器
  • id 选择器
  • 通配符选择器
     

2.2.1 标签选择器

能快速为同一类型的标签都选择出来.
但是不能差异化选择

    <style>
        p{
            color: rebeccapurple;
        }
        div{
            color: red;
        }
    </style>
</head>
<body>
    <p>猫</p>
    <p>狗</p>
    <div>cssTest</div>
    <div>css练习</div>
</body>


2.2.2 类选择器

  • 类名用 . 开头的
  • 下方的标签使用 class 属性来调用.
  • 一个类可以被多个标签使用, 一个标签也能使用多个类(多个类名要使用空格分割, 这种做法可以让代码更好复用)
  • 如果是长的类名, 可以使用 - 分割.
  • 不要使用纯数字, 或者中文, 以及标签名来命名类名
    <style>
        .box {
        width: 200px;
        height: 150px;
        }
        .red {
        background-color: red;
        }
        .green {
        background-color: green;
        }
        </style>
        <div class="box red"></div>
        <div class="box green"></div>
        <div class="box red"></div>

2.2.3 id选择器

  • CSS 中使用 # 开头表示 id 选择器
  • id 选择器的值和 html 中某个元素的 id 值相同
  • html 的元素 id 不必带 #
  • id 是唯一的, 不能被多个标签使用 (是和 类选择器 最大的区别)
     
    <style>
        #ha {
        color: red;
        }
        </style>
        <div id="ha">蛤蛤蛤</div>

2.2.4 通配符选择器

使用 * 的定义, 选取所有的标签.

* {
color: red;
}

页面的所有内容都会被改成 红色
 

2.复合选择器: 把多种基础选择器综合运用起来.

  • 后代选择器
  • 并集选择器
  • 伪类选择器
     

2.2.5 后代选择器

语法格式:

元素1 元素2 {样式声明}
  • 元素 1 和 元素 2 要使用空格分割
  • 元素 1 是父级, 元素 2 是子级, 只选元素 2 , 不影响元素 1
     

代码示例:把 ol 中的 li 修改颜色, 不影响 ul

<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
<ol>
<li>ddd</li>
<li>eee</li>
<li>fff</li>
</ol>

<style>
ol li {
color: red;
}
</style>

2.2.6 并集选择器

语法格式:

元素1, 元素2 { 样式声明 }
  • 通过 逗号 分割等多个元素.
  • 表示同时选中元素 1 和 元素 2
  • 任何基础选择器都可以使用并集选择器.
  • 并集选择器建议竖着写. 每个选择器占一行. (最后一个选择器不能加逗号)
     

代码示例:把苹果和香蕉颜色改成红色

    <div>苹果</div>
    <h3>香蕉</h3>
    <ul>
    <li>鸭梨</li>
    <li>橙子</li>
    </ul>
        
    <style>
    div, h3 {
    color: red;
    }
    </style>

2.2.7 伪类选择器

  1. a:link 选择未被访问过的链接
  2. a:visited 选择已经被访问过的链接
  3. a:hover 选择鼠标指针悬停上的链接
  4. a:active 选择活动链接(鼠标按下了但是未弹起)
    <button id="aa">小猫</button>
    <style>
    #aa:link {
        color: black;
        } 
        #aa:visited {
        color: green;
        } 
        #aa:hover {
        color: red;
        } 
        #aa:active {
        color: blue;
    }    
    </style>

三、CSS常见属性

3.1 字体相关属性

    <style>
        .font-family .one {
        font-family: 'Microsoft YaHei';
        font-size: 10px;
        font-weight: 100px;
        font-style: italic;

        }
        .font-family .two {
        font-family: '宋体';
        font-size: 20px;
        font-weight: 100px;
        font-style: inherit;
        }
        </style>

        <div class="font-family">
        <div class="one">
        这是微软雅黑
        </div>

        <div class="two">
        这是宋体
        </div>
        </div>
        

  1. font-family:字体类型
  2. font-size:字体大小
  3. font-weight:字体粗细
  4. font-style:字体样式

3.2 文本相关属性

    <style>
        .font-family .one {
            color: aqua;
            text-align: center;
            text-decoration: underline;
            text-indent: 10px;
            line-height: 100px;
        }
        .font-family .two {
            color: rebeccapurple;
            text-align: center;
            text-decoration: line-through;
            text-indent: 20px;
            line-height: 100px;
        }
        </style>

        <div class="font-family">
        <div class="one">
        这是微软雅黑
        </div>

        <div class="two">
        这是宋体
        </div>
        </div>

  1. color:文本颜色
  2. text-align:文本对齐
  3. text-decoration:文本装饰
  4. text-indent:文本缩进
  5. line-height:行高

颜色还可以表示为rbg(x1,x2,x3)去代表颜色,我们使用 R (red), G (green), B (blue) 的方式表示颜色(色光三原色). 三种颜色按照不同的比例搭配, 就能混合出各种五彩斑斓的效果
计算机中针对 R, G, B 三个分量, 分别使用一个字节表示(8个比特位, 表示的范围是 0-255, 十六进制表示为 00-FF)数值越大, 表示该分量的颜色就越浓. 255, 255, 255 就表示白色; 0, 0, 0 就表示黑色.

3.3 背景属性

   <style>
        .bgs .one {
        width: 500px;
        height: 500px;
        background-image: url(../../blog_system/image/v2-c6af95fde4c49be17489191ac9129fdf_720w.webp);
        background-repeat: no-repeat;
        background-position: center;
        background-size: 300px;
        }
        </style>
        <div class="bgs">
        <div class="one">背景尺寸</div>
        </div>

  1. width和height去设置背景的大小
  2. background-color:背景颜色
  3. background-image:背景图片
  4. background-repeat:背景平铺
  5. background-position:背景位置
  6. background-size:背景尺寸

3.4 圆角矩形

通过 border-radius 使边框带圆角效果.
语法格式:

border-radius: length;
    <div>蛤蛤</div>
    <style>
    div {
        width: 200px;
        height: 100px;
        border: 2px solid green;
        border-radius: 10px;
        }
    </style>

生成圆形:让 border-radius 的值为正方形宽度的一半即可

    <div>蛤蛤</div>
    <style>
    div {
        width: 200px;
        height: 200px;
        border: 2px solid green;
        border-radius: 100px;
        }
    </style>

四、元素的显示模式

在 CSS 中, HTML 的标签的显示模式有很多

此处只重点介绍两个:
块级元素
行内元素

4.1 块级元素

常见的元素:

h1 - h6
p
div
ul
ol
li
...

特点:

  • 独占一行
  • 高度, 宽度, 内外边距, 行高都可以控制.
  • 宽度默认是父级元素宽度的 100% (和父元素一样宽)
  • 是一个容器(盒子), 里面可以放行内和块级元素.
     
<style>
.demo1 .parent {
width: 500px;
height: 500px;
background-color: green;
}
.demo1 .child {
/* 不写 width, 默认和父元素一样宽 */
/* 不写 height, 默认为 0 (看不到了) */
height: 200px;
background-color: red;
}
</style>
<div class="demo1">
<div class="parent">
<div class="child">
child1
</div>
<div class="child">
child2
</div>
</div>
</div>

注意:

文字类的元素内不能使用块级元素
p 标签主要用于存放文字, 内部不能放块级元素, 尤其是 div

4.2 行内元素

常见的元素:

a
strong
b
em
i
del
s
ins
u
span
...

特点:

  • 不独占一行, 一行可以显示多个
  • 设置高度, 宽度, 行高无效
  • 左右外边距有效(上下无效). 内边距有效.
  • 默认宽度就是本身的内容
  • 行内元素只能容纳文本和其他行内元素, 不能放块级元素
<style>
.demo2 span {
width: 200px;
height: 200px;
background-color: red;
}
</style>
<div class="demo2">
<span>child1</span>
<span>child2</span>
<span>child3</span>
</div>

注意:

  • a 标签中不能再放 a 标签 (虽然 chrome 不报错, 但是最好不要这么做).
  • a 标签里可以放块级元素, 但是更建议先把 a 转换成块级元素

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

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

4.4 改变显示模式

使用 display 属性可以修改元素的显示模式.

  • display: block 改成块级元素 [常用]
  • display: inline 改成行内元素 [很少用]
  • display: inline-block 改成行内块元素
     

五、盒模型

每一个 HTML 元素就相当于是一个矩形的 "盒子"

这个盒子由这几个部分构成

  • 边框 border
  • 内容 content
  • 内边距 padding
  • 外边距 margin
     

开发者工具:

 边框:

基础属性:

  • 粗细: 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: #c03574 10px solid;
border-bottom: green 20px dotted;
border-left: blue 30px dashed;
border-right: black 40px solid;

边框会撑大盒子

可以看到, width, height 是 500*250, 而最终整个盒子大小是 520 * 270. 边框10个像素相当于扩大了大小.

 通过 box-sizing 属性可以修改浏览器的行为, 使边框不再撑大盒子.

* {
box-sizing: border-box;
}

5.1 内边距

  • 一般的文本是贴着边框的,但是这样太丑了
  • 我们可以用内边距去控制文本在元素中的位置

语法格式:

padding: 10px 20px;

第一个设置为上下10px,左右20px

也可以一起设置:

padding: 10px;

也可以分开设置:

padding-left: 10px;
padding-top: 20px;
padding-bottom: 30px;
padding-right: 40px;

5.2 外边距

  • 跟内边距的使用基本一样

语法格式:

margin: 10px 20px;

一起设置:

margin: 10px;

分开设置:

margin-top: 10px;
margin-bottom: 20px;
margin-left: 30px;
margin-right: 40px;

特性:margin的左右方向设置为auto,可实现水平居中的效果

margin-top: 10px;
margin-bottom: 20px;
margin-left: auto;
margin-right: auto;

但是,上下方向设置为auto不能实现垂直居中!!!

六、弹性布局

B站为例:

在这里插入图片描述

 块级元素,默认是独占一行的,垂直方向排序的,而我们有时是希望块级元素是水平排列的~

  • 这里的行不是指文本的一行,而是把块级元素看成整体,占一行

在这里插入图片描述

 弹性布局,可以使这些块元素在一行排列~~~

在这里插入图片描述

有很多属性,但是我只介绍最简单的三个属性:

1.开启弹性布局:display:flex
注意: 一个元素开启弹性布局,不代表这个元素与别的元素是弹性布局的,也不是标签选择器选中的标签之间是弹性布局的,而是这个元素内部的子元素之间是弹性布局的!孙子元素不受影响

2.设置水平方向的排列规则justify-content
居中排列,靠左,靠右,分散…

3.设置垂直方向的排列规则align-items

    <div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
        <span>4</span>
        <span>5</span>
        </div>
        <style>
        div {
        width: 100%;
        height: 150px;
        background-color: red;
        display: flex;
        }
        div span {
        width: 100px;
        height: 100px;
        background-color: green;
        }
        </style>


 为了更加美观,可以增加水平和垂直排序规则:

justify-content: center;/*水平居中*/

 对于垂直方向的排列:

align-items: center;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/577042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HNU-操作系统OS-实验Lab7

OS_Lab7_Experimental report 湖南大学信息科学与工程学院 计科 210X wolf (学号 202108010XXX) 实验目的 理解操作系统的同步互斥的设计实现;理解底层支撑技术:禁用中断、定时器、等待队列;在ucore中理解信号量(semaphore)机制的具体实现;理解管程机制,在ucore内…

动力电池管理系统(BMS)

BMS技术 目录 BMS技术 一、BMS简介 二、BMS主要功能 1、参数检测 2、剩余电量&#xff08;SOC&#xff09;估计 3、充放电控制 4、热管理 5、均衡控制 6、故障诊断 7、信息监控 8、参数标定 9、CAN总线接口 三、BMS架构组成 1、BMS的拓扑架构 1、1集中式架构的B…

JavaEE进阶(5/27)Spring Boot

目录 1.认识Spring Boot 2.Spring Boot的优点 3.SpringBoot项目创建 4.resource文件夹 和test文件夹 5.使用一个Spring Boot项目 1.认识Spring Boot Spring Boot 中的Boot 是启动引导的意思 如果Spring相比于普通java开发是从走演变到了汽车&#xff0c;那么Spring boot 相比…

【博客历程】比起方法和技巧,我更想谈质量与坚持

【博客历程】比起方法和技巧&#xff0c;我更想谈质量与坚持 文章目录 【博客历程】比起方法和技巧&#xff0c;我更想谈质量与坚持[toc]我的第一篇博客为什么坚持写博客为什么选择CSDN何为质量未来 还没准备好&#xff0c;等我怎样怎样时再 还在犹豫什么时候开始&#xff0c;…

ssm+springboot+java高校图书馆图书借阅座位预约管理系统系统

陕理工图书馆管理系统包括多个功能模块&#xff1a;图书类别管理模块、图书管理模块、读者管理模块、借阅管理模块、预约管理、推荐管理。管理员登入后&#xff0c;维护图书借阅的信息。本文介绍了使用Java技术开发陕理工图书馆管理系统的设计与实现过程&#xff0c;首先对实现…

微信小程序 java+nodejs+vue美食定制个性化点餐推荐系统

社会的发展和科学技术的进步&#xff0c;互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱&#xff0c;也逐渐进入了每个用户的使用。手机具有便利性&#xff0c;速度快&#xff0c;效率高&#xff0c;成本低等优点。 因此&#xff0c;构建符合自己要求的操作系统是非…

Deathnote

Deathnote 1.主机发现 arp-scan -l2.扫描端口 nmap -Pn -sV -P- -A 192.168.80.132开放了80、22端口 3.访问80端口 修改host文件访问80端口时进行了跳转到deathnote.vuln/wordpress&#xff0c;修改hosts文件&#xff0c;将该域名解析到靶机ip windows hosts文件路径&…

canal server 标准化集群搭建(完结)

4.2. 创建 server 所属集群&#xff1a;选择刚才添加的 “集群名称” server 名称&#xff1a; server_1、server_2、server_3 依次类推 server ip&#xff1a;server 的 ip 地址 admin 端口&#xff1a;canal server 与 canal admin 的通信端口&#xff0c;非生产环境从 2…

Android 12.0Launcher3 电话和短信app图标显示未读短信和未接来电的条数

1.概述 在12.0产品开发中,最近客户有需求要求在电话app图标显示未接来电的条数 在短信app图标上显示未读信息的条数 根据需求首选要在Launcher3的Launcher.java中,启动launcher时,查询未读短信和未接来电 在有未接来电时,更新未接来电的数量 在有未读短信时,更新未读短信的…

基于html+css的图展示95

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

C++内存空间

1.内存空间 在 C 中&#xff0c;内存分为内核空间和用户空间&#xff0c;内核空间由操作系统管理&#xff0c;程序员写的程序在用户空间。 程序运行时&#xff0c;内存主要分成四个区&#xff0c;分别是栈、堆、数据段和代码段。 栈&#xff1a;存储局部变量、函数参数和返回…

今日餐饮美食推荐系统多商家 uniapp+vue微信小程序

此今日美食推荐小程序信息的设计主要有两个用户&#xff0c;会员客户端和管理员服务端两个部分&#xff1a;会员客户主要功能&#xff1b; &#xff08;1&#xff09;会员信息&#xff1a;包括&#xff1a;会员注册、会员登录&#xff0c;包括对个人信息进行修改。 &#xff08…

Redis的常用数据结构之哈希类型

首先这里说的哈希类型针对的是redis中的value的k-v结构 常见的操作命令 hset设置值 hsetnx命令&#xff0c;不存在可以设置&#xff0c;存在设置不成功 hget取值&#xff0c;这里与字符串类型不同是要精确到filed。前面的判断也是基于field来实现的 要是field没有就返回null h…

计算机视觉:卷积步长(Stride)

本文重点 我们前面学习了卷积操作,也学习了填充,本节课程我们学习卷积步长,之前我们使用卷积核进行卷积操作都是在图像的左上角开始,从左到右、从上到下每次移动一步,其实移动多少步是可以变化的,这个移动步数称为步长。 什么是步长 卷积操作中的步长(Stride)是指卷…

Qt自定义的ColorDialog--仿QColorDialog

Qt已经有了色板选择&#xff0c;但是它使用QDialog形成的&#xff0c;每次调用基本上都成了点一个按钮&#xff0c;谈一个模态框&#xff0c;选择好颜色之后再关掉模态框。 但是&#xff0c;如果想将颜色选择板放在窗口上&#xff0c;并不会有模态的功能就会比较麻烦&#xff…

【Python GUI编程】零基础也能轻松掌握的学习路线与参考资料

Python GUI编程是指使用Python语言及其相关的GUI框架来开发图形用户界面的程序。学习Python GUI编程需要具备一定的基础知识&#xff0c;如Python语言基础、面向对象编程、GUI编程等。下面给出详细的学习路线和参考资料。 一、Python基础 学习Python GUI编程的第一步需要具备…

代理模式 静态代理 动态代理

代理对象可以在客户端和目标对象之间起到中介的作用&#xff0c;并且可以通过代理对象去掉客户不应该看到的内容和服务或者添加客户需要的额外服务。 代理模式中的角色&#xff1a; 代理类目标类代理类和目标类的公共接口&#xff1a;客户端在使用代理类时就像在使用目标类&a…

接口加密解决方案:Python的各种加密实现

前言 在现代软件开发中&#xff0c;接口测试已经成为了不可或缺的一部分。随着互联网的普及&#xff0c;越来越多的应用程序都采用了接口作为数据传输的方式。接口测试的目的是确保接口的正确性、稳定性和安全性&#xff0c;从而保障系统的正常运行。 在接口测试中&#xff0…

【C++项目】负载均衡oj

前言&#xff1a; 本篇记录负载均衡oj项目设计的整体思路和部分代码。 负载均衡oj项目基于http网络请求&#xff0c;通过简单的前后端交互&#xff1a;前端的页面编辑已经提交代码&#xff0c;后端控制模块和编译运行的模块分离整合&#xff08;负载均衡式的选择后端编译运行服…

【2024最新】Spring面试题

✅✅作者主页:🔗请你喝杯Java的博客 🔥🔥精选专栏:🔗Java求职一条龙(持续更新中) 💞💞觉得文章还不错的话欢迎大家点赞👍➕收藏⭐️➕评论💬支持博主🤞 👉 👉你的一键三连是我更新的最大动力❤️❤️ 【2024最新】Spring面试题 一.Spring中@Resource…