08_css

文章目录

  • CSS
    • 概念
    • 在HTML中引入CSS的三种方式
    • CSS的选择器
      • 标签选择器
      • 类选择器
      • id选择器
      • 后代选择器
      • 子类选择器
      • 并集选择器
      • 伪类选择器
      • 伪元素选择器
      • 属性选择器
      • 选择器的优先顺序
    • 盒子模型
      • 边框的写法
      • 内外边距的写法
      • 外边距合并
    • 标签的分类
      • 块级元素
      • 行级元素
      • 行内块
    • 浮动

CSS

概念

css是层叠样式表主要作用是设置HTML页面中的文本内容格式(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等等外观显示样式。

  • css是以HTML为基础,提供丰富的样式功能
  • 需要和HTML结合使用,无法单独使用。

在HTML中引入CSS的三种方式

  1. 内联样式
    • 写在一个html标签的属性位置,写在开始标签上
    • 多个css样式以分号分割

eg:

	<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!-- html和css结合的第一种方式:直接在html标签上,新增一个style属性,在style属性里面去添加属性-->
<!--内联样式-->
<div style="width: 600px; height: 200px; background-color: silver; 
font-size: 30px; border-radius: 30px">
    hello
</div>

</body>
</html>
  1. 内部样式
    • 写在head标签内部的style标签内
    • 内部样式使用是最多的

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        /*内部样式:把样式写在head内部,再加一个标签<style> 在里面去写样式*/
        div {
            width: 600px;
            height: 300px;
            background-color: silver;
            font-size: 40px;
        }
    </style>
</head>
<body>

<div>
    hello world
</div>

</body>
</html>
  1. 外部样式
    css样式写在一个单独的css文件中, 引入到html文件中。
    引入方式:

    • <link rel="stylesheet" type="text/css" href="./01_css.css" />

    • <style type="text/css">
      @import url(./01_css.css);
      </style>

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--   <style>-->
<!--       @import "Demo2.css";-->
<!--   </style>-->

<!--    可以直接写一个link,然后href写相对路径-->
    <link rel="stylesheet" type="text/css" href="./Demo2.css" />
</head>
<body>

<div>
    hello world
</div>

</body>
</html>

CSS的选择器

标签选择器

会作用于所有指定的标签

  • 使用方式:标签名{css样式}
  • eg:div{}、p{}

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        div{
            width: 200px;
            height: 100px;
            /*background-color改变的是背景颜色*/
            background-color: aqua;

            font-size: 50px;
            /*color改变的是字体的颜色*/
            color: coral;

            /*框框的圆角半径*/
            border-radius: 30px;
        }

        p{
            font-size: 100px;
            color: brown;
        }


    </style>
</head>
<body>

<div>
    hello world
</div>


<p>
    !!!!!!!!!
</p>

</body>
</html>

类选择器

    • 标签上有一个属性,属性名class,属性值即类名。<div class="div1">
  • 使用方式:.类名{css样式}

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        .div1{
            width: 200px;
            height: 200px;
            background-color: blue;
            font-size: 30px;
        }

        .div2{
            width: 100px;
            height: 100px;
            background-color: brown;
            font-size: 20px;
        }
    </style>
</head>
<body>

<div class="div1">
    hello world
</div>

<div class="div2">
    Yes! I can
</div>

</body>
</html>

id选择器

  • 标签上有一个属性,属性名id,属性值即id。<div id="div1">
  • 使用方式:#id{css样式}
  • eg:#div1{}#div2{}
  • 另外在一个html页面上, 每个标签的id都应该是唯一的

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>

        #div-id {
            width: 200px;
            height: 200px;
            background-color: yellow;
            font-size: 40px;
        }

    </style>
</head>
<body>

<div id="div-id">
    这个div—id
</div>

</body>
</html>

后代选择器

  • 选择div的后代p
  • 使用方式: 元素1 元素2 {样式声明}

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        div p{
            font-size: 30px;
            color: crimson;
        }
    </style>
</head>
<body>

<div>
    这是div
    <p>
        这是第一个p
    </p>

    <p>
        这是第二个p
    </p>
</div>

</body>
</html>

子类选择器

  • 只会选择直接的子类
  • 使用方式:元素1> 元素2{}

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>

        div >p{
            font-size: 30px;
            color: blue;
        }

    </style>
</head>
<body>

<div>
    <p>
        hello world
    </p>
</div>

<div>
    !!!!
</div>

<p>
    ????
</p>

</body>
</html>

后代选择器与子类选择器的区别:

  • 后代选择器会选择所有的后代div p{}
  • 子类选择器只会选择直接子类div > p{}

并集选择器

使用方式:元素1, 元素2

eg:

    <style>
        div,p{
            font-size: 30px;
            color: crimson;
        }
    </style>

伪类选择器

用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。

  1. 选择标签的hover状态
    a:hover{} 当a标签hover时候,样式

  2. 选择第一个元素,选择第n个元素
    p:first-child{} p:nth-child(2){}

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        a:hover{
            background-color: brown;
        }
        div{
            width: 200px;
            height: 200px;
            color: blue;
            font-size: 20px;
            background-color: silver;
        }
        div:hover{
            font-size: 30px;
        }
    </style>
</head>
<body>

<div>
    这是div
</div>

</body>
</html>

伪元素选择器

伪元素是用来添加一些选择器的特殊效果

eg:

想往h1标签前面插入元素
  h1:before{
    content: url("1.jpg")
  }

属性选择器

选择标签中带有某个属性的
使用方式:[target] {}

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        /* 属性选择器*/
        [href] {
            font-size: 30px;
            background-color: crimson;
        }

    </style>
</head>
<body>


<a href="https://baidu.com">这是百度</a>

</body>
</html>

选择器的优先顺序

  • id选择器 > 类选择器 > 标签选择器
  • 可以加一个important提高它的优先级
  • 只有在多个选择器,都对同一个属性

盒子模型

盒子模型:是指一个HTML元素,在经过浏览器解析之后,最终会变成一个矩形的盒子

盒子模型分四部分

  • 内容区域
  • 内边距
  • 边框
  • 外边距
    在这里插入图片描述

边框的写法

  • border:指代边框的属性
  • 可以有2或者3个属性

eg:

  • border: 1px solid
    • 2个参数的: 边框厚度,线的类型
  • border: 1px solid red
    • 3个参数的: 边框厚度,线的类型,线的颜色
    • 如果不填写颜色,则默认为黑色

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        div{
            /*设置的宽和高,其实是内容区域的大小*/
            width: 200px;
            height: 100px;
            background-color: brown;
            border: 1px solid;
            border: 10px solid yellow;
            /*1px 控制的是边框的粗细; solid控制的是线性*/
        }
    </style>
</head>
<body>

<div>
    this is div!!
</div>

</body>
</html>

内外边距的写法

内边距(padding)/ 外边距(margin)的设置

  • 只写一个,上下左右则都是内边距
    • eg:padding : 30px
  • 写两个,则第一个参数是上下,第二个参数是左右
    • eg:padding : 20px 10px
  • 写三个,则第一个参数是上,第二个参数是左右,第三个参数是下
    • eg:padding : 30px 20px 10px
  • 写四个,则从上开始顺时针(上 -> 右 -> 下 -> 左)
    • eg:padding : 30px 20px 10px 5px

外边距合并

就是两个框框,他们的外边距在垂直方向上 “紧相邻”,它们的外边距会合并。

  • 情况1:兄弟紧相邻(不能解决紧相邻现象)

eg:

<style>
        .div1 {
            width: 300px;
            height: 200px;
            background-color: #e38c21;
            margin-bottom: 50px;
        }

        .div2 {
            width: 300px;
            height: 200px;
            background-color: #2175e3;
            margin-top: 50px;
        }

</style>

<div class="div1">
    div1
</div>

<div class="div2">
    div2
</div>
  • 情况2:父子紧相邻(可以解决紧相邻现象)

eg:

<style>
  .div-father {
  width: 300px;
  height: 500px;
  background-color: #e38c21;
  margin-top: 50px;

}

.div-son {
  width: 300px;
  height: 200px;
  background-color: #2175e3;
  margin-top: 50px;
}
</style>

<div class="div-father">
    <div class="div-son">

    </div>
</div>

标签的分类

块级元素

  • 块级元素, 可以设置 高度 / 宽度 / 内边距 / 外边距
  • 块级元素 默认有一个display属性,属性值为block
    • eg:display:block
  • 常见的块级元素:
    divph1h2 h3 h4h5h6olulliformtable

行级元素

  • 行级元素不能设置宽度 / 高度,内外边距也只有左 / 右起作用
    • 块级元素 默认有一个display属性,属性值为inline
      • eg:display:inline
  • 常见的行级元素:
    • span 常用行级容器,定义文本内区块;
    • a 锚点;
    • b 加粗;
    • strong 加粗强调;
    • i 斜体;
    • strike 中划线;
    • br 强制换行;
    • u 下划线;
    • textarea 多行文本输入框;
    • input 输入框;
    • select 下拉列表;
    • img 引入图片

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

  1. 块级元素可以设置宽高、内外边距;行级元素设置宽高不起作用,内外边距也只有左右起作用
  2. 所占行的区别
  • 块级元素,独占一行;行级元素,不独占一行
  1. 宽度继承的问题
  • 块级元素,会继承父类的宽
  • 行级元素,不会继承

行内块

  • 本质属于行级元素:可以与其他行级元素共处一行
  • 常见的行内块元素:
    • input 输入框
    • img 引入图片
    • button
    • select
  • 默认属性为display:inline-block;

可以通过display属性,来完成 行级元素、块级元素、行内块之间的转换


浮动

形象的讲, 我们可以使一个html的盒子模型,脱离标准文档流, "漂浮"起来

特点

  • 浮动只影响后面的元素
  • 连续浮动一行显示
  • 浮动以元素顶部为基准对齐
  • 浮动可实现模式转换
clear: 谁受影响谁清除

left:在左侧不允许浮动元素。

right:在右侧不允许浮动元素。

both:在左右侧不允许浮动元素。

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        .div1 {
            width: 200px;
            height: 200px;
            background-color: yellow;

            float: left;
        }

        .div2 {
            width: 300px;
            height: 400px;
            background-color: red;

            float: left;
        }
        /*浮动是顶对齐*/

        .div3{
            width: 500px;
            height: 600px;
            background-color: blue;

            float: left;
        }

        .div4{
            width: 400px;
            height: 500px;
            background-color: green;

            /*谁受影响,谁清除浮动*/
            clear: both;
        }
    </style>
</head>
<body>

<div class="div1">
</div>

<div class="div2">
</div>

<div class="div3">
</div>

<div class="div4">
</div>

</body>
</html>

  • 可以用Snipaste来选取色号,一般是rgb(xx, xx, xx)
  • 写前端的流程:
    • 先用大的块来占据空间
    • 然后再用小一点的块继续占
    • 知道占到最小的时候,来使用基础的html元素来构建

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

共同学习|Spring Cloud Alibaba一一服务网关Gateway

目录 服务网关-Gateway 环境搭建 负载均衡 Gateway Predicates Path After Before Cookie Header Weight GatewayFilter Factories StripPrefix AddResponseHeader 自定义全局Filter 网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连&…

北斗卫星赋能,宠物定位新篇章—追踪宠物,不再是难题

北斗卫星赋能&#xff0c;宠物定位新篇章—追踪宠物&#xff0c;不再是难题 随着社会的快速发展与科技的不断进步&#xff0c;人们的生活方式也在不断改变。宠物已经成为越来越多家庭的重要成员&#xff0c;在这个宠爱宠物的时代&#xff0c;如何确保宠物的安全&#xff0c;特…

js之继承

js之继承 1、原型 prototype 和 __proto__2、原型链3、继承4、hasOwnProperty 1、原型 prototype 和 proto 每个对象都有一个__proto__属性&#xff0c;并且指向它的prototype原型对象每个构造函数都有一个prototype原型对象prototype原型对象里的constructor指向构造函数本身…

淘金优化算法GRO求解不闭合SD-MTSP,可以修改旅行商个数及起点(提供MATLAB代码)

一、淘金优化算法GRO 淘金优化算法&#xff08;Gold rush optimizer&#xff0c;GRO&#xff09;由Kamran Zolf于2023年提出&#xff0c;其灵感来自淘金热&#xff0c;模拟淘金者进行黄金勘探行为。淘金优化算法&#xff08;Gold rush optimizer&#xff0c;GRO&#xff09;提…

vscode与vue/react环境配置

一、下载并安装VScode 安装VScode 官网下载 二、配置node.js环境 安装node.js 官网下载 会自动配置环境变量和安装npm包(npm的作用就是对Node.js依赖的包进行管理)&#xff0c;此时可以执行 node -v 和 npm -v 分别查看node和npm的版本号&#xff1a; 配置系统变量 因为在执…

Cloudera虚拟机配置(虚拟机环境自带Hadoop、Impala等大数据处理应用)

上学期的大数据处理课程&#xff0c;笔者被分配到Impala的汇报主题。然而汇报内容如果单纯只介绍Impala的理论知识&#xff0c;实在是有些太过肤浅&#xff0c;最起码得有一些实际操作来展示一下Impala的功能。但是Impala的配置实在是有些困难与繁琐&#xff0c;于是笔者通过各…

VSCode设置成中文语言环境

1&#xff0c;打开VSCode软件&#xff0c;按快捷键【CtrlShiftP】 2&#xff0c;在弹出的搜索框中输入configure language&#xff0c;然后选择Configure Display Language 3&#xff0c;在选择框中选择zh-cn 4&#xff0c;确认重启VSCode就可以了

【基础知识】MPP架构和hadoop架构比对

架构比对 简单一句描述。 mpp架构&#xff0c;就是找一群和自己能力差不多的任一起做事&#xff0c;每个人做的事情是一致的。 hadoop架构&#xff0c;就是找一群能力差一些的人&#xff0c;但只需要他们每个人只做一部分工作。 举例说明 一个特色小饭店如何成为连锁餐饮巨…

基于JAVA springboot+mybatis智慧生活分享平台设计和实现

基于JAVA springbootmybatis智慧生活分享平台设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 可定制系统 欢迎点赞 收藏 …

代码随想录算法训练营第二十二天| 235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

文章目录 1.二叉搜索树的最近公共祖先2.二叉搜索树中的插入操作3.删除二叉搜索树中的节点 1.二叉搜索树的最近公共祖先 因为是有序树&#xff0c;所以中间节点如果是p、q的公共祖先&#xff0c;那么一定存在p<公共祖先<q 或 q<公共祖先<p 代码如下&#xff1a; /**…

树的基本概念和结构

目录 树的概念和结构 树的相关概念 树的特点 树的表示 树的基本应用 树的概念和结构 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合 &#x1f4cc; 把它叫做树是因为它看起来像一棵倒挂的树&#x…

springboot集成docker快速入门demo

一、docker介绍 Docker是一个开源的应用容器引擎&#xff0c;它允许开发者将应用及其依赖打包到一个可移植的容器中。这个容器可以在任何流行的 Linux或 Windows操作系统上运行&#xff0c;并且支持虚拟化。容器是完全基于沙箱机制的&#xff0c;这意味着它们之间不会有任何接口…

一般情况下,硬件中使用Repeating Sequence出现波形很奇怪就是数据的周期频率和mcu运行的频率不一致导致的

一般情况下&#xff0c;出现波形很奇怪就是数据的周期频率和mcu运行的频率不一致导致的 把timer values 修改为0 1就好了&#xff0c;如果是0&#xff0c;0.1就不行&#xff0c;不会有下面的波形

计算机组成原理 — 存储器(2)

高速缓冲存储器 大家好呀&#xff01;我是小笙&#xff0c;由于存储器这部分章节内容较多&#xff0c;我分成二部分进行总结&#xff0c;以下是第二部分&#xff0c;希望内容对你有所帮助&#xff01; 概述 目的&#xff1a;避免CPU空等现象 原理&#xff1a;程序访问的局部…

【王道数据结构】【chapter6图】【P258t7】

试编写 利用DFS实现有向无环图的拓扑排序的算法 #include <iostream> #define maxsize 10 typedef struct node{int data;struct node *next; }node ,*pnode;pnode buynode(int x) {pnode tmp(pnode) malloc(sizeof (node));tmp->datax;tmp->next nullptr;return t…

【K8s】初识PV和PVC

​ 目录 收起 O、致谢 一、前言 二、Volume 2.1 什么是Volume 2.2 为什么要引入Volume 2.3 Volume类型有哪些 2.4 Volume如何使用 2.4.1 通过emptyDir共享数据 2.4.2 使用HostPath挂载宿主机文件 2.4.3 挂载NFS至容器 三、PV和PVC 3.1 什么是PV和PVC 3.2 为什么要引入PV和PVC 3…

Remainder Problem(根号分治)

Educational Codeforces Round 71 (Rated for Div. 2) F. Remainder Problem 题目链接 F. Remainder Problem 题意&#xff1a; 给你一个由 500000 500000 500000 个整数&#xff08;编号从 1 1 1 到 500000 500000 500000 &#xff09;组成的数组 a a a 。最初 a a a…

【JavaEE】网络原理: HTTPS协议相关内容

目录 HTTPS 是什么 HTTPS 的工作过程 对称加密 非对称加密 引入证书 理解数据签名 通过证书解决黑客攻击 HTTPS 是什么 HTTPS也是一个应用层协议, 是在HTTP协议的基础上引入了一个加密层. HTTP协议内容都是按照文本的方式明文传输的, 这就导致在传输过程中出现一些被篡…

minHash(最小哈希)和LSH(局部敏感哈希)

在数据挖掘中,有一个比较基本的问题,就是比较两个集合的相似度。关于这个问题,最笨的方法就是用一个两重循环来遍历这两个集合中的所有元素,进而统计这两个集合中相同元素的个数。但是,当这两个集合里的元素数量非常庞大时,同时又有很多个集合需要判断两两之间的相似度时…