当前位置: 首页 > news >正文

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

 本期是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.lryc.cn/news/180631.html

相关文章:

  • 支持向量机SVM:从数学原理到实际应用
  • 【办公自动化】在Excel中按条件筛选数据并存入新的表(文末送书)
  • 第三章:最新版零基础学习 PYTHON 教程(第十一节 - Python 运算符—Python 中的any与all)
  • Pytorch单机多卡分布式训练
  • asp.net coremvc+efcore增删改查
  • Java基础面试,什么是面向对象,谈谈你对面向对象的理解
  • Ubuntu系统初始设置
  • 焕新古文化传承之路,AI为古彝文识别赋能
  • 毛玻璃动画交互效果
  • Audio2Face的工作原理
  • 【面试题】2023前端面试真题之JS篇
  • Mysql 分布式序列算法
  • Windows/Linux双系统卸载Ubuntu
  • asp.net core mvc 视图组件viewComponents
  • 如何保持终身学习
  • 【RV1103】RTL8723bs (SD卡形状模块)驱动开发
  • LeetCode 周赛上分之旅 #49 再探内向基环树
  • kubernetes-v1.23.3 部署 kafka_2.12-2.3.0
  • 位置编码器
  • Lua多脚本执行
  • Spirng Cloud Alibaba Nacos注册中心的使用 (环境隔离、服务分级存储模型、权重配置、临时实例与持久实例)
  • 26663-2011 大型液压安全联轴器 课堂随笔
  • ChatGPT架构师:语言大模型的多模态能力、幻觉与研究经验
  • 二、VXLAN BGP EVPN基本原理
  • Evil.js
  • 使用sqlmap的 ua注入
  • 华为云云耀云服务器L实例评测 | 实例评测使用之体验评测:华为云云耀云服务器管理、控制、访问评测
  • resultmap
  • 宽带光纤接入网中影响家宽业务质量的常见原因有哪些
  • C++ - 封装 unordered_set 和 unordered_map - 哈希桶的迭代器实现