CSS 基础 3

news2024/11/20 20:27:14

目录 🚀

导读 -- target

盒子模型

看透网页布局的本质

盒子模型组成

边框(border) 

border-style

​编辑border-color

border-width

边框写法

简写 

 分开写

表格细线边框 

边框会影响盒子实际大小

内边距

内容

内边距-padding

padding属性简写

padding对盒子的影响

padding的特殊情况

外边距

什么是外边距

简写

块级盒子水平居中

外边距合并

嵌套块级元素垂直外边距的塌陷

清除内外边距 


创作不易多多支持😶‍🌫️🥳


导读 -- target

  • 能够准确阐述盒子模型的四个组成部分
  • 能够利用边框复合写法给元素添加边框
  • 能够计算盒子实际大小
  • 能够利用盒子模型布局模块案例
  • 能够给盒子设置圆角边框
  • 能够给盒子添加阴影
  • 能够给文字添加阴影

盒子模型

看透网页布局的本质

 

每一个网页都是由很多个盒子组成

网页布局流程:

  1.  准备好相关的网页元素, 网页元素基本都是盒子box
  2. 利用css 设置好盒子的样式, 然后摆放到相应的位置
  3. 往盒子里面装内容

盒子模型组成

         所谓盒子模型, 就是把html页面中的布局元素看做是一个矩形的盒子, 也就是一个盛装内容的容器,  css 盒子模型本质上就是一个盒子 , 封装周围的HTML元素, 他包括: 边框, 外边距, 内边距, 和实际内容. 

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

下面我们来看一个图来总结一下:

例如现在有一个div盒子, 我现在想给他添加一个边框, 可以这么来:

    <style>
        body {
            width: 400px;
            height: 200px;
            border-style: dashed;
            /* border-widht 是我们的边框粗细 一般使用px作为单位*/
            border-width: 5px;
        }
    </style>
    <div> 这是一个div标签</div>

 

这只是一个示例, 下面将详细介绍:

边框(border) 

         我们第一眼看见这个边框, 是不是可以想到, 这个边框肯定是可以设置颜色的, 看到这个线条我们肯定可以看到边框是否有粗细. 居然有实现, 那么肯定有虚线等等样式

        下面我们就来看看边框都有哪些属性:

border的属性
属性作用
border-width定义边框的粗细, 单位是px
border-style边框的样式
border-color边框的颜色

border-style

         需要注意的是, 这里的border-style 的默认值是none, 也就是说, 如果你不设置border-style属性为除了none之外的值的话, 那么就是默认无边框, 即使是设置了border-width和border-color也会不显示边框

说明:

  • 如果提供全部四个参数值,将按上-右-下-左的顺序作用于四个边框。
  • 如果只提供一个,将用于全部的四条边。
  • 如果提供两个,第一个用于上-下,第二个用于左-右。
  • 如果提供三个,第一个用于上,第二个用于左-右,第三个用于下。
  • 要使用该属性,必须先设定对象的height或width属性,或者设定position属性为absolute。
  • 如果border-width不大于0,本属性将失去作用。
  • 对应的脚本特性为borderStyle。请参阅我编写的其他书目。

border-color

 border-color属性可以设置边框的颜色, 语法如下:

border-color: color;

说明:

  •  如果提供全部四个参数, 将按照 上>右>下>左的顺序作用于四个边框
  • 如果只提供一个, 那么就默认作用于全部的四条边
  • 如果提供两个, 第一个将作用于 上和下, 第二个作用于 左和右.
  • 如果提供三个, 第一个用于提供上, 第二个作用于左右, 第三个用于下
  • 要使用该属性, 必须先设定对象的height和width属性, 或者设定position属性为absolute
  • 如果border-width 等于0, 或者是border-style设置为none. 本属性将会失去作用

border-width

说明:

  • 如果提供全部四个参数值,将按上-右-下-左的顺序作用于四个边框。
  • 如果只提供一个,将用于全部的四条边。
  • 如果提供两个,第一个用于上-下,第二个用于左-右。
  • 如果提供三个,第一个用于上,第二个用于左-右,第三个用于下。
  • 要使用该属性,必须先设定对象的height或width属性,或者设定position属性为absolute。
  • 如果border-style设置为none,本属性将失去作用。
  • 对应的脚本特性为borderWidth。请参阅我编写的其他书目。

 

边框写法

简写 

例如:

width和style和color之间是没有顺序的 

 

说明:

  • 如使用该复合属性定义其单个参数,则其他参数的默认值将无条件覆盖各自对应的单个属性设置。
  • 默认值为:medium none。border-color的默认值将采用文本颜色。
  • 要使用该属性,必须先设定对象的height或width属性,或者设定position属性为absolute。
  • 对应的脚本特性为border。请参阅我编写的其他书目。
  • 关于对象的尺寸与边框,内外补丁等样式表属性的关系,请参看图例以及height和width属性。

 分开写

top上边框
right右边框
bottom下边框
left左边框

表格细线边框 

有时候我们想要表格的线更细一点

例如:

  两个单元格之间的边框重合了, 这就会导致他们比其他没有重合的边框会更粗

如何解决这种问题? 

使用属性: border-collapse: collapse

边框会影响盒子实际大小

 

        我们看这张图, 很明显你会发现, 一个盒子的大小不只是content的内容, 他还包含内边距padding和外边距margin, 还有边框的宽度.

        所以我们在修改变边框的时候, 就会修改边盒子的实际大小, 因此我们在测量盒子大小的时候, 不量边框, 如果测量的时候包含了边框, 则需要width height减去边框的宽度.

内边距

内容

内容很好理解, 也就是我们上图中content的部分.

        如果我们设置了一个如下的案例, 我们就会发现, 这个内容距离这个背景的边缘部分太紧凑了, 觉得不美观, 那我们可不可以把他变得离开这个边缘部分更远一点呢??         

        比如说就像这样, 如下图一样: 

        该如何设置?? 这就要用到我们的内边距了

内边距-padding

        使用padding属性来设置内边距, 即边框和内容之间的距离.

属性作用
padding-left做内边距
padding-right右内边距
padding-top上内边距
padding-bottom下内边距

例如这里有一个盒子, 其中包含一些内容, 代码如下:

    <div>
        你好世界!!!你好世界!!!你好世界!!!你好世界!!!你好世界!!!你好世界!!!你好世界!!!你好世界!!!你好世界!!!你好世界!!!你好世界!!!你好世界!!!
        你好世界!!!你好世界!!!你好世界!!!你好世界!!!你好世界!!!你好世界!!!你好世好
    </div>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
        }
    </style>

使用padding属性来修改他的边距:

1.上边距

            padding-top: 20px;

2. 左边距

            padding-left: 20px;

        从浏览器的控制台看到左边距为20px 

右边距和下边距同样如此, 此处不一一列举 

padding属性简写

padding对盒子的影响

1. 内容和边框有了距离, 添加了内边距

2. padding会影响盒子实际大小

对于低一点我们来回顾一下, 盒子的组成

回顾一下盒子模型, 盒子是由这几个部分组成:

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

box盒子的大小由这四个部分一起决定.

        其中如果我们修改了padding, 那势必会影响到盒子的大小. 修改padding同时也会影响内容和边框的距离.

        但是有时候我们不想修改box的大小, 但是需要修改padding的大小该怎么办?? 

修改width属性和height属性即可.

padding的特殊情况

         如果盒子本身没有指定width和height属性, 则此时设置padding属性不会撑开盒子大小.

外边距

什么是外边距

        外边距, 也就是上图中的margin. 是边框外的一层, 也是盒子的最外一层. 

        我们经常发现, 盒子和盒子直接是有距离的:

        例如上图中紫色的部分, 就是盒子和盒子之间的距离. 

        那我们如何来控制这个距离呢?? 可以使用属性 margin

margin: 控制盒子外边距的大小

例如, 这里有两个盒子, 代码如下:

    <div>
        1
    </div>

    <div>
        2
    </div>

    <style>
        div {
            background-color: burlywood;
            width: 200px;
            height: 200px;
        }
    </style>

 

下面我想要这两个div盒子中间隔开, 并且让这两个数字在这个正方形中间显示:

    <div>
        1
    </div>

    <div>
        2
    </div>

    <style>
        div {
            background-color: burlywood;
            width: 200px;
            height: 200px;

            line-height: 200px;
            text-align: center;
            margin: 10px;
        }
    </style>

简写

        margin的简写和padding一摸一样.

块级盒子水平居中

        让块级元素水平居中需要满足两点:

盒子必须设置width属性

盒子左右的外边距必须设置为auto

例如, 现在有一个盒子, 但是他在页面的左侧, 代码如下:

    <div>
    </div>

    <style>
        div {
            background-color: burlywood;
            width: 200px;
            height: 200px;
        }
    </style>

        但是我想要他居中显示. 

    <div>
    </div>

    <style>
        div {
            background-color: burlywood;
            width: 200px;
            height: 200px;

            margin: 0 auto;
        }
    </style>

我们margin还可以这样写:

        div {
            background-color: burlywood;
            width: 200px;
            height: 200px;

            margin-left: auto;
            margin-right: auto;
        }

也可以:

    <style>
        div {
            background-color: burlywood;
            width: 200px;
            height: 200px;

            /* margin: 0 auto 0; */
            /* margin: 0 auto; */

            /* margin-left: auto; margin-right: auto*/

            margin: auto;
        }
    </style>

我们只要保证左右设置为auto就可以.

外边距合并

        使用margin定义款级元素的垂直外边距时, 可能会出现外边距的合并.

这个例子可以参考:

    <div>
        1
    </div>

    <div>
        2
    </div>

    <style>
        div {
            background-color: burlywood;
            width: 200px;
            height: 200px;

            line-height: 200px;
            text-align: center;
            margin: 10px;
        }
    </style>

        1和2之间那个白色的高度为10px, 但是我设置了两个盒子的外边距都为10px,那两个盒子之间的距离不应该是20px吗, 这就是盒子外边距的合并

嵌套块级元素垂直外边距的塌陷

        对于嵌套关系的块元素, 父元素有上边距的同时子元素也有上外边距, 此时父元素会塌陷较大的外边距值.

清除内外边距 

        举两个例子

        我们观察这个图片, 发现, 这个123并不是贴着这个页面的最顶部和最左侧, 而是有一定的距离

        还有一个例子是:

    <ul>
        <li>123</li>
    </ul>

 

        我们放大来看这张图 

         可以发现这个标签有16px的外边距和40px的内边距.

        图中的方框中都是多出来的边距, 而不是我们手动设置的, 其实这就说明了我们的一些业内元素, 很多都是自己就默认有内外边距的.

        网页元素很多都带有默认的内外边距, 而且不同的浏览器默认的也不一致, 所以我们在布局之前就徐璈清楚下网页元素的内外边距:

* {
    margin: 0; /*清除外边距*/
    padding: 0; /*清除内边距*/
}





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

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

相关文章

vue点击pdf文件直接在浏览器中预览文件

好久没有更新文章了&#xff0c;说说为什么会有这篇文章呢&#xff0c;其实是应某个热线评论的要求出的&#xff0c;不过由于最近很长一段时间没打开csdn现在才看到&#xff0c;所以才会导致到现在才出。 先来看看封装完这个预览方法的使用&#xff0c;主打一个方便使用&#x…

Java学习day06:面向对象基础,构造方法,成员/局部变量

声明&#xff1a;该专栏本人重新过一遍java知识点时候的笔记汇总&#xff0c;主要是每天的知识点题解&#xff0c;算是让自己巩固复习&#xff0c;也希望能给初学的朋友们一点帮助&#xff0c;大佬们不喜勿喷(抱拳了老铁&#xff01;) Java学习day06&#xff1a;面向对象基础&a…

网络爬虫相关概念

目录 1、什么是爬虫&#xff1f; 2、网络爬虫步骤 3、爬虫核心 4、爬虫的用途 5、爬虫分类 6、反爬手段 1、什么是爬虫&#xff1f; 如果我们把互联网比作一张大的蜘蛛网&#xff0c;那一台计算机上的数据便是蜘蛛网上的一个猎物&#xff0c;而爬虫程序就是一只小蜘蛛&am…

给定一个链表,判断链表中是否有环

【思路】 快慢指针&#xff0c;即慢指针一次走一步&#xff0c;快指针一次走两步&#xff0c;两个指针从链表其实位置开始运行&#xff0c; **如果链表带环则一定会在环中相遇&#xff0c;**否则快指针率先走到链表的末尾。比如&#xff1a;陪女朋友到操作跑步减肥。 bool hasC…

测试域: 流量回放-工具篇jvm-sandbox,jvm-sandbox-repeater,gs-rest-service

JVM-Sandbox Jvm-Sandbox-Repeater架构_小小平不平凡的博客-CSDN博客 https://www.cnblogs.com/hong-fithing/p/16222644.html 流量回放框架jvm-sandbox-repeater的实践_做人&#xff0c;最重要的就是开心嘛的博客-CSDN博客 [jvm-sandbox-repeater 学习笔记][入门使用篇] 2…

Unity丨自动巡航丨自动寻路丨NPC丨

文章目录 概要功能展示技术细节小结 概要 提示&#xff1a;这里可以添加技术概要 本文功能是制作一个简单的自动巡逻的NPC&#xff0c;随机自动寻路。 功能展示 技术细节 using UnityEngine;public class NPCController : MonoBehaviour {public float moveSpeed 5.0f; // …

成都瀚网科技:抖音提供差异化​​亮点!

在抖音平台上&#xff0c;精选联盟是一个专门为优质品牌提供展示和推广机会的合作项目。对于斗店主来说&#xff0c;如何成功对接精选联盟并实现上市是一个重要目标。在这篇文章中&#xff0c;我们将分享一些豆点与精选联盟对接的方法&#xff0c;并提供上币指南。 1、提升店铺…

2023最新如何轻松升级、安装和试用Navicat Premium 16.2.10 教程详解

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

六、决策树算法(DT,DecisionTreeClassifier)(有监督学习)

决策树&#xff08;DT&#xff09;是一种用于分类和回归的非参数监督学习方法。其目标是创建一个模型&#xff0c;通过学习从数据特征中推断出的简单决策规则来预测目标变量的值。一棵树可以看作是一个片断常数近似值。 一、算法思路 具体可参考博文&#xff1a;七、决策树算…

linux升级glibc-2.28

1.准备工作 1.1升级gcc到gcc8 # 安装devtoolset-8-gcc yum install centos-release-scl yum install devtoolset-8 scl enable devtoolset-8 -- bash# 启用工具 source /opt/rh/devtoolset-8/enable # 安装GCC-8 yum install -y devtoolset-8-gcc devtoolset-8-gcc-c devtoolse…

【C语言】数组和指针刷题练习

指针和数组我们已经学习的差不多了&#xff0c;今天就为大家分享一些指针和数组的常见练习题&#xff0c;还包含许多经典面试题哦&#xff01; 一、求数组长度和大小 普通一维数组 int main() {//一维数组int a[] { 1,2,3,4 };printf("%d\n", sizeof(a));//整个数组…

[plugin:vite:css] [sass] Undefined mixin.

前言&#xff1a; vite vue3 TypeScript环境 scss报错&#xff1a; [plugin:vite:css] [sass] Undefined mixin. 解决方案&#xff1a; 在vite.config.ts文件添加配置 css: {preprocessorOptions: {// 导入scss预编译程序scss: {additionalData: use "/resources/_ha…

如何使用远程桌面软件进行远程工作

远程工作提供了更大的灵活性和自由度&#xff0c;使得可以在任何地点工作。而要实现高效的远程工作&#xff0c;一个关键的工具就是远程桌面软件。本文将详细介绍如何使用远程桌面软件进行远程工作&#xff0c;以帮助读者提高工作效率。 一、了解远程桌面软件的基本原理 远程桌…

带你一步实现《栈》(括号匹配问题)

栈的结构及概念 栈是一种特殊的线性表&#xff0c;只允许在固定的一端插入或删除数据&#xff0c;进行插入和删除的一端被称为栈顶&#xff0c;另一端称为栈底。栈中的数据遵循后进先出原则 LIFO&#xff08;LAST IN FIRST OUT) 俗称栈的插入过程叫做压栈&#xff0c;入栈&…

Batbot智慧能源管理云平台:拥抱数字化,提高能源效率!

我们拥抱数字化&#xff0c;以帮助提高能源效率。 政府已采取措施增强国家的环境信誉&#xff0c;旨在实现雄心勃勃的法定目标&#xff0c;即到2035年&#xff0c;将国家温室气体排放量减少78%&#xff08;与1990年相比&#xff09;。 拥抱数字化&#xff0c;提高能源效率&a…

HTTP 协商缓存 Last-Modified,If-Modified-Since

浏览器第一次跟服务器请求一个资源&#xff0c;服务器在返回这个资源的同时&#xff0c;在respone header加上Last-Modified属性&#xff08;表示这个资源在服务器上的最后修改时间&#xff09;&#xff1a; ----------------------------------------------------------------…

ThinkPHP5,使用unionAll取出两个毫无相关字段表的数据且分页

一&#xff1a;首先来了解一下 union 和 unionAll 1&#xff1a;取结果的并集&#xff0c;是否去重 union&#xff1a;对两个结果集进行并集操作&#xff0c;不包括重复行&#xff0c;相当于distinct&#xff0c;同时进行默认规则的排序&#xff1b; unionAll&#xff1a;对两…

JVM面试题-JVM对象的创建过程、内存分配、内存布局、访问定位等问题详解

对象 内存分配的两种方式 指针碰撞 适用场合&#xff1a;堆内存规整&#xff08;即没有内存碎片&#xff09;的情况下。 原理&#xff1a;用过的内存全部整合到一边&#xff0c;没有用过的内存放在另一边&#xff0c;中间有一个分界指针&#xff0c;只需要向着没用过的内存…

【QT】QRadioButton的使用(17)

QRadioButton这个控件在实际项目中多用于多个QRadioButton控件选择其中一个这样的方式去执行&#xff0c;那么&#xff0c;今天这节就通过几个简单的例子来好好了解下QRadioButton的一个使用。 一.环境配置 1.python 3.7.8 可直接进入官网下载安装&#xff1a;Download Pyt…