CSS详细基础(六)边框样式

news2024/11/23 15:25:18

 本期是CSS基础的最后一篇~

目录

一.border属性

二.边框属性复合写法

三.CSS修改表格标签

四.内边距属性

五.外边距属性

六.其他杂例 

1.盒子元素水平居中

2.清除网页内外元素边距

3.外边距的合并与塌陷

 4.padding不会撑大盒子的情况

七.综合案例——新浪导航栏仿真 


一.border属性

border属性是用于指定元素边框的样式、宽度和颜色。可以通过设置一到四个值来定义上、右、下、左四个边框的样式。例如,使用border-top属性可以设置上边框的样式、宽度和颜色。border属性的初始值是none,表示没有边框。边框样式可以是实线、虚线、点状等等,可以使用dotted、dashed、solid等值来定义不同的样式。边框的宽度可以通过设置像素值来控制,例如1px代表1像素的宽度。边框的颜色可以使用颜色名称或者十六进制值来定义,例如red代表红色。在border属性中,还可以通过设置border-radius来定义边框的圆角效果。

        .bian {
            border-width: 5px;
            border-color: brown;
            border-style: solid;
        }

        img {
            border-width: 5px;
            border-color: rgb(236, 202, 6);
            border-style: solid;
        }

大部分元素均可以使用边框选择器,如下:

二.边框属性复合写法

边框的复合写法是通过使用border属性来同时设置边框的宽度、样式和颜色。具体语法是border: 宽度 样式 颜色;。例如,border: 1px solid black; 表示边框宽度为1像素,样式为实线,颜色为黑色。

        div
        {
            width: 500px;
            height: 500px;
            background-color: lawngreen;
            border-style: dashed;
            border-color: lightcoral;
            border-width: 5px;
            border-top-color: lightseagreen;
        }
        .bian
        {
            border: 3px solid greenyellow;
        }

 

三.CSS修改表格标签

CSS同样可以用来修改表格标签table默认的样式,通过对table标签抑或td标签等均可实现~

        table
        {
            width: 500px;
            height: 249px;
            text-align: center;
        }
        table,td,th
        {
            border: 1px solid palevioletred;
            border-collapse: collapse;
        }

 

四.内边距属性

内边距padding,顾名思义,针对的是元素内部的样式:即内部元素相对于当前元素的距离

        div
        {
            width: 500px;
            height: 500px;
            background-color: plum;
            font-size: 30px;
            color: red;
            padding-left: 20px;
            padding-right: 20px;
            padding-top: 230px;  
        }

如下图,文本与边距的距离受到了padding属性的控制~

 

五.外边距属性

与padding相反,外边框属性时针对当前元素与上一级元素之间的距离等属性~

    <style>
        .one
        {
            width: 200px;
            height: 200px;
            background-color: red;
            margin-bottom: 20px;
        }
        .two
        { 
            width: 200px;
            height: 200px;
            background-color: royalblue;
            margin-bottom: 20px;
            margin-top: 20px;
            margin-left: 200px;
        }
        .three
        {
            width: 200px;
            height: 200px;
            background-color: seagreen;
            /* margin-top: 20px; */
        }
        /* 此处已然实现了外边框的合并 */
    </style>

效果如下:

 

六.其他杂例 

1.盒子元素水平居中

        div
        {
            width: 900px;
            height: 200px;
            background-color: chartreuse;
            line-height: 200px;
            text-align: center;
            font-size: 40px;
            color: black;
            /* margin: 0 auto; */
            
        }

原理很简单:即行高等于行间距~

2.清除网页内外元素边距

细心的小伙伴一定会发现,网页整体本身存在着一定的内外边距,如下,并没有顶住上左的边界:

 如下的通配符选择器可以实现内外边距的清零:

        *
        {
            margin: 0;
            padding: 0;
        }

3.外边距的合并与塌陷

margin合并:是指在垂直方向上,相邻的两个盒子的外边距会合并为一个外边距的现象。当一个盒子的上边距与下边距相遇时,它们会合并成一个较大的外边距。

而margin塌陷:是指在垂直方向上,父子元素之间的外边距不是简单地相加,而是取它们之间的最大值作为最终的外边距值。这样会导致子元素的外边距无法完全展示,因为它们的外边距被父元素的外边距所替代。

找来截图给大家直观地看一下:

 

如下一段代码案例:

<!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>Document</title>
    <style>
        div
        {
            width: 200px;
            height: 200px;
            background-color: blue;
        }
        .one
        {
            margin-bottom: 20px;
        }
        .two
        {
            margin-top:10px;
            /* 因为one的下边距大与two的上边距,所以会发生垂直合并,即选更大的20px作为两者之间的外边距。 */
        }
        .div2
        {
            width: 400px;
            height: 400px;
            background-color: brown;
            border: 5px solid black;
        }
        
        .three
        {
            margin-top: 50px;
        }
    </style>
</head>
<body>
    <div class="one"></div>
    <div class="two"></div>
    <div class="div2 two">
        <div class="three"></div>
        <!-- 50大于父类盒子的外边距,故会导致父类大盒子一起塌陷。 -->
        <!-- 为父类增加边框,则父类不会随子类一起改变外边距,从而避免了塌陷问题。 -->
        <!-- 这里子类盒子与父类的最外层其实是(50-10=40)px -->
    </div>
    <!-- 盒子的嵌套一直就是最难的部分,还需要再度琢磨 -->
</body>
</html>

 

 4.padding不会撑大盒子的情况

<!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>Document</title>
    <style>
        h1
        {
            background-color: plum;
            height: 50px;
            padding: 30px;
        }
        div
        {
            height: 90px;
            background-color: powderblue;
        }
        p
        {
            
            padding: 30px;
            background-color: purple;
        }
    </style>
</head>
<body>
    <h1>我是没有撑大的盒子标签</h1>
    <div>
        <p>不会将盒子撑大。</p>
    </div>
</body>
</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>Document</title>
    <style>
        div
        {
            height: 41px;
            border-top: 3px solid #ff8500;
            border-bottom: 1px solid #edeef0;
            background-color: #fcfcfc;
            line-height: 41px;
        }
        div a
        {
            font-size: 12px;
            color: #4c4c4c;
            text-decoration: none;
            display: inline-block;
            height: 41px;
            padding: 0 20px;
        }
        a:hover
        {
          background-color:#eee;
          color: #ff8500;
        }

    </style>
</head>
<body>
    <div class="nav">
          <a href="#">新浪导航</a>
          <a href="#">手机新浪网</a>
          <a href="#">移动客户端</a>
          <a href="#">微博</a>
          <a href="#">PC端</a>
    </div>
</body>
</html>

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

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

相关文章

微信小程序写一个将图片对象转成base64字符串的函数

这个我只能比较遗憾的说 小程序中大部分操作文件的API都是异步的 所以这个函数 我们还是要异步返回 其实大家肯定也都喜欢同步的 imageToBase64(image) {return new Promise((resolve, reject) > {const filePath image.path;// 获取图片文件大小wx.getFileInfo({filePath…

马尔萨斯《人口原理》读后

200 多年前的书&#xff0c;很多人都说旧的东西过时了&#xff0c;但我觉得它只是被修正了&#xff0c;内核并不过时。毕竟&#xff0c;静态存量分析这本身就不符合现实&#xff0c;用现在的话说&#xff0c;建模就错了&#xff0c;但马尔萨斯的理论核心并不仅仅是一个模型&…

IO流 之 缓冲流(字节缓冲流和字符缓冲流)

缓冲流对原始流进行了包装&#xff0c;以提高原始流读写数据的性能。 字节缓冲流&#xff08;BufferedInputStream和BufferedOutputStream&#xff09; 字节缓冲流在内存中提供了一个默认为8kb的区域&#xff0c;用于缓冲&#xff0c;当流开始时&#xff0c;先读取一个8kb的内…

【Orange Pi】Orange Pi5 Plus 安装记录

官网&#xff1a;Orange Pi - Orangepi 主控芯片&#xff1a;Rockchip RK3588(8nm LP制程&#xff09;NPU&#xff1a;内嵌的 NPU 支持INT4/INT8/INT16/FP16混合运算&#xff0c;算力高达 6Top支持的操作系统&#xff1a; Orangepi OS&#xff08;Droid&#xff09;Orangepi O…

[JAVAee]MyBatis

目录 MyBatis简介 MyBatis的准备工作 框架的添加 连接数据库字符串的配置 MyBatis中XML路径的配置 ​编辑 MyBatis的使用 各层的实现 进行数据库操作 增加操作 拓展 修改操作 删除操作 查询操作 结果映射 单表查询 多表查询 like模糊查询 动态SQL / MyBa…

【超详细】Wireshark教程----Wireshark 分析ICMP报文数据试验

一&#xff0c;试验环境搭建 1-1 试验环境示例图 1-2 环境准备 两台kali主机&#xff08;虚拟机&#xff09; kali2022 192.168.220.129/24 kali2022 192.168.220.3/27 1-2-1 网关配置&#xff1a; 编辑-------- 虚拟网路编辑器 更改设置进来以后 &#xff0c;先选择N…

[Linux]Git

文章摘于GitHub博主geeeeeeeeek 文章目录 1.1 Git 简易指南创建新仓库工作流添加与提交推送改动 1.2 创建代码仓库git init用法讨论裸仓库 例子 git clone用法讨论仓库间协作 例子用法讨论栗子 1.3 保存你的更改git add用法讨论缓存区 栗子 git commit用法讨论记录快照&#xf…

数据统计-EXCEL中常用函数及操作

最近经常需要做一些数据统计工作&#xff0c;整理下EXCEL常用的函数及操作&#xff0c;总结及分享出来&#xff0c;后续会不断更新。 一、VLOOKUP函数 同表查询&#xff1a;VLOOKUP(A2,$A:$G,1,0) 跨表查询&#xff1a; VLOOKUP(A2,Sheet2!$A:$G,1,0) 跨工作薄&#xff1a; 跨…

GD32F10x的输出模式

1. 单片机型号的识别。 2. GPIO的输出模式。 1. 开漏模式 2.推挽模式 3.复用开漏模式 4.复用推挽模式。 开漏模式&#xff1a;&#xff08;写入位设置&#xff0c;输出数据寄存器来控制MOS&#xff09; 只有N-MOS管导通。PMOS不导通。 当N-MOS的栅极为0&#xff0c;N-MOS管…

Windows 下安装和配置 Redis (详细图文)

目录 下载 Redis安装 Redis配置 Redis修改密码(可选)配置环境变量注册系统服务 Redis 桌面管理工具附&#xff1a;开源项目微服务商城项目前后端分离项目 下载 Redis 访问 Redis 下载地址&#xff1a;https://github.com/tporadowski/redis/releases 下载 Redis 时&#xff0c…

unity 鼠标标记 左键长按生成标记右键长按清除标记,对象转化为子物体

linerender的标记参考 unity linerenderer在Game窗口中任意画线_游戏内编辑linerender-CSDN博客 让生成的标记转化为ARMarks游戏对象的子物体 LineMark.cs using System.Collections; using System.Collections.Generic; using UnityEngine;public class LineMark : MonoBeh…

二十二,加上各种贴图

使用pbr的各种贴图&#xff0c;albedo,金属度&#xff0c;ao,法线&#xff0c;粗糙度&#xff0c;可以更好的控制各个片元 1&#xff0c;先加上纹理坐标 texCoords->push_back(osg::Vec2(xSegment, ySegment)); geom->setVertexAttribArray(3, texCoords, osg::Array::BI…

【每日一题】花期内花的数目+【差分数组】+【二分枚举】

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;差分数组方法二&#xff1a;二分查找 写在最后 Tag 【差分数组】【二分查找】【数组】【2023-09-28】 题目来源 2251. 花期内花的数目 题目解读 每朵花都有自己的花期&#xff0c;有些花的花期会有重叠&#xff0c;也…

Turf处理等压线

Turf是一个用于空间分析的JavaScript库。它包括传统的空间操作、用于创建GeoJSON数据的辅助函数以及数据分类和统计工具。Turf可以作为客户端插件添加到您的网站&#xff0c;也可以使用Node.js在服务器端运行Turf。 Turf是一个模块化的js类库&#xff0c;所有的模块都是在packa…

【GDB】用 python 扩展 gdb

用 python 扩展 GDB .gdbinit 文件中实现自定义命令 mv 代码如下 define mvif $argc 2delete $arg0# 注意新创建的断点编号和被删除断点的编号不同break $arg1elseprint "输入参数数目不对&#xff0c;help mv 以获得用法"end end# (gdb) help mv 会输出以下帮助文…

搭建自己的搜索引擎之四

一、前言 搭建自己的搜索引擎之三 介绍了通过HTTP RESTful 对ES进行增删改查&#xff0c;这一般手工运维ES时使用&#xff0c;程序代码中最好还是使用Java API去操作ES会更容易维护&#xff0c;但ES API竟然贼多&#xff0c;本篇介绍一下 四种 API及其简单使用。 注&#xff…

深入理解二叉树:结构、遍历和实现

文章目录 &#x1f34b;引言&#x1f34b;什么是二叉树&#xff1f;&#x1f34b;二叉树的基本性质&#x1f34b;二叉树的遍历&#x1f34b;二叉树的实现&#x1f34b;结语 &#x1f34b;引言 在计算机科学中&#xff0c;二叉树是一种重要的数据结构&#xff0c;广泛应用于各种…

【密评】商用密码应用安全性评估从业人员考核题库(二)

商用密码应用安全性评估从业人员考核题库&#xff08;二&#xff09; 国密局给的参考题库5000道只是基础题&#xff0c;后续更新完5000还会继续更其他高质量题库&#xff0c;持续学习&#xff0c;共同进步。 251 多项选择题 根据《密码法》&#xff0c;核心密码、普通密码安全…

Linux常用命令(一)

目录 一、列出目录内容&#xff08;ls&#xff09; 二、切换目录&#xff08;cd&#xff09; 三、显示当前目录路径&#xff08;pwd&#xff09; 四、以树状结构显示目录内容&#xff08;tree&#xff09; 五、创建新目录&#xff08;mkdir&#xff09; 六、复制文件或目…

windows11 如何关闭 vbs

在Windows 11中&#xff0c;VBS是一种虚拟化安全功能&#xff0c;它可以防止恶意软件通过沙箱环境运行。 如果您想关闭VBS功能&#xff0c;方法如下&#xff1a; 点击底部开始菜单 在上方搜索 cmd &#xff0c;并点击以管理员身份运行 打开控制台后&#xff0c;在控制台输入…