web前端学习(十九)——CSS3盒子模型(Box Model)、边框属性(border)及轮廓属性(outline)的相关设置

简介: web前端学习(十九)——CSS3盒子模型(Box Model)、边框属性(border)及轮廓属性(outline)的相关设置

1.CSS盒子模型(Box Model)


所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。

CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。

盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。

下面的图片说明了盒子模型(Box Model)


不同部分的说明:

·       Margin(外边距) - 清除边框外的区域,外边距是透明的。

·       Border(边框) - 围绕在内边距和内容外的边框。

·       Padding(内边距) - 清除内容周围的区域,内边距是透明的。

·       Content(内容) - 盒子的内容,显示文本和图像。

最终元素的总宽度计算公式是这样的:

总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距。

元素的总高度最终计算公式是这样的:

总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距。

小实例: 

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>CSS简单学习</title>
    <style type="text/css">
      div {
        background-color: lightgray;
        border: 25px solid green;
        width: 300px;
        padding: 25px;
        margin: 25px;
      }
    </style>
  </head>
  <body>
    <h2>盒子模型小实例</h2>
    <p>CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。</p>
    <div>这里是盒子内的实际内容。有 25px 内间距,25px 外间距、25px 绿色边框。</div>
  </body>
</html>

2.CSS边框属性(border)


CSS边框属性允许你指定一个元素边框的样式和颜色。

有关border(简写属性)、border-width(边框宽度)、border-style(边框样式)、border-color(边框颜色)的相关内容,可以参考这篇博文:https://blog.csdn.net/weixin_43823808/article/details/113251320


2.1 border-width属性(边框宽度)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>CSS简单学习</title>
    <style type="text/css">
      p.one {
        border-style: solid;
        border-width: 5px;
      }
      p.two {
        border-style: solid;
        border-width: medium;
      }
      p.three {
        border-style: solid;
        border-width: 1px;
      }
    </style>
  </head>
  <body>
    <p class="one">这是一个段落。</p>
    <p class="two">这是一个段落。</p>
    <p class="three">这是一个段落。</p>
    <p><b>注意:</b>&quot;border-width&quot; 属性 如果单独使用则不起作用。要先使用 &quot;border-style&quot; 属性来设置边框。</p>
  </body>
</html>

2.2 border-color属性(边框颜色)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>CSS简单学习</title>
    <style type="text/css">
      p.one {
        border-style: solid;
        border-color: red;
      }
      p.two {
        border-style: solid;
        border-color: blue;
      }
      p.three {
        border-style: solid;
        border-color: green;
      }
    </style>
  </head>
  <body>
    <p class="one">实线红色边框</p>
    <p class="two">实线蓝色边框</p>
    <p class="three">实线绿色边框</p>
    <p><b>注意:</b>&quot;border-color&quot; 属性 如果单独使用则不起作用. 要先使用 &quot;border-style&quot; 属性来设置边框。</p>
  </body>
</html>

2.3 border-style属性(边框样式)

border-top-styleborder-bottom-styleborder-left-styleborder-right-style四个属性可以简写为:border-style

border-style属性可以有1-4个值:


·       border-style: a b c d;

·       上边框是 a

·       右边框是 b

·       底边框是 c

·       左边框是 d

·       border-style: a b c;

·       上边框是 a

·       左、右边框是 b

·       底边框是 c

·       border-style: a b;

·       上、底边框是 a

·       右、左边框是 b

·       border-style: a;

·       四面边框是 a


border-style:属性1,属性2,属性3,属性4:上->->->

border-style:属性1,属性2,属性3:上->左右->

border-style:属性1,属性2:上下->左右

border-style:属性1:上下左右属性相同

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>CSS简单学习</title>
    <style type="text/css">
      p {
        border-top-style: dotted;
        border-bottom-style: dotted;
        border-left-style: solid;
        border-right-style: solid;
      }
    </style>
  </head>
  <body>
    <p>这里设置了两种不同的边框样式</p>
  </body>
</html>

3.CSS轮廓属性(outline)


轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。

CSS outline 属性规定元素轮廓的样式、颜色和宽度。


属性

说明

CSS

outline

在一个声明中设置所有的轮廓属性

outline-color
outline-style
outline-width
inherit

2

outline-color

设置轮廓的颜色

color-name
hex-number
rgb-number
invert
inherit

2

outline-style

设置轮廓的样式

none
dotted
dashed
solid
double
groove
ridge
inset
outset
inherit

2

outline-width

设置轮廓的宽度

thin
medium
thick
length
inherit

2


3.1 outline-style属性(轮廓样式)


outline(轮廓)是绘制于元素周围的一条线,位于边框边缘的外围。

outline-style属性指定outline的样式。

描述

none

默认。定义无轮廓。

dotted

定义点状的轮廓。

dashed

定义虚线轮廓。

solid

定义实线轮廓。

double

定义双线轮廓。双线的宽度等同于 outline-width 的值。

groove

定义 3D 凹槽轮廓。此效果取决于 outline-color 值。

ridge

定义 3D 凸槽轮廓。此效果取决于 outline-color 值。

inset

定义 3D 凹边轮廓。此效果取决于 outline-color 值。

outset

定义 3D 凸边轮廓。此效果取决于 outline-color 值。

inherit

规定应该从父元素继承轮廓样式的设置。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>CSS简单学习</title>
    <style type="text/css">
      p {border: 1px solid red;}
      p.dotted {outline-style: dotted;}
      p.dashed {outline-style: dashed;}
      p.solid {outline-style: solid;}
      p.double {outline-style: double;}
      p.groove {outline-style: groove;}
      p.ridge {outline-style: ridge;}
      p.inset {outline-style: inset;}
      p.outset {outline-style: outset;}
    </style>
  </head>
  <body>
    <p class="dotted">轮廓样式</p>
    <p class="dashed">轮廓样式</p>
    <p class="solid">轮廓样式</p>
    <p class="double">轮廓样式</p>
    <p class="groove">轮廓样式</p>
    <p class="ridge">轮廓样式</p>
    <p class="inset">轮廓样式</p>
    <p class="outset">轮廓样式</p>
  </body>
</html>

3.2 outline-width属性(轮廓宽度)

outline(轮廓)是绘制于元素周围的一条线,位于边框边缘的外围。

outline-width指定轮廓的宽度。

注意: 请始终在outline-width属性之前声明outline-style属性。元素只有获得轮廓以后才能改变其轮廓的宽度。

描述

thin

规定细轮廓。

medium

默认。规定中等的轮廓。

thick

规定粗的轮廓。

length

允许您规定轮廓粗细的值。

inherit

规定应该从父元素继承轮廓宽度的设置。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>CSS简单学习</title>
    <style type="text/css">
      p.one {
        border: 3px solid red;
        outline-style: double;
        outline-width: thick;
      }
      p.two {
        border: 3px solid red;
        outline-style: dotted;
        outline-width: 5px;
      }
    </style>
  </head>
  <body>
    <p class="one">这个段落设置了轮廓宽度和轮廓样式</p>
    <p class="two">这个段落设置了轮廓宽度和轮廓样式</p>
  </body>
</html>


3.3 outline-color属性(轮廓颜色)

outline(轮廓)是绘制于元素周围的一条线,位于边框边缘的外围。

outline-color属性指定轮廓颜色。

注意: 请始终在 outline-color 属性之前声明 outline-style 属性。元素只有获得轮廓以后才能改变其轮廓的颜色。

描述

color

指定轮廓颜色。

invert

默认。执行颜色反转(逆向的颜色)。可使轮廓在不同的背景颜色中都是可见。

inherit

规定应该从父元素继承轮廓颜色的设置。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>CSS简单学习</title>
    <style type="text/css">
      p {
        border: 3px solid red;
        outline-style: dashed;
        outline-color: #0000FF;
      }
    </style>
  </head>
  <body>
    <p>这个段落的边框和轮廓拥有不同的颜色</p>
  </body>
</html>

3.4 outline属性

outline(轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。

outline简写属性在一个声明中设置所有的轮廓属性。

可以设置的属性分别是(按顺序):outline-coloroutline-styleoutline-width(顺序正好与border相反)

如果不设置其中的某个值,也不会出问题,比如 outline:solid #ff0000; 也是允许的。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>CSS简单学习</title>
    <style type="text/css">
      p {
        border: 3px solid red;
        outline: green dashed 3px;
      }
    </style>
  </head>
  <body>
    <p>这个段落的边框和轮廓均使用&quot;border&quot;和&quot;outline&quot;简写属性进行设置。</p>
  </body>
</html>

相关文章
|
3月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
transition过渡属性 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成。 但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化, 让效果显得更加细腻。简单点说,就是通过鼠标经过、获得焦点,被点击或对元素任何改变中触发, 并平滑地以动画效果改变CSS的属性值。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 在默认样式中声明元素的初始状态样式; 声明过渡元素最终状态样式,比如悬浮状态; 在默认样式中通过添加
258 0
|
3月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
208 1
|
3月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
312 1
|
3月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
300 2
|
3月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
452 1
|
3月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
314 4
|
7月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
7月前
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。
|
7月前
|
JSON 开发框架 自然语言处理
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
本文主要介绍了应用开发中的三大核心内容:生命周期管理、资源限定与访问以及多语言支持。在生命周期部分,详细说明了应用和页面的生命周期函数及其触发时机,帮助开发者更好地掌控应用状态变化。资源限定与访问章节,则聚焦于资源限定词的定义、命名规则及匹配逻辑,并阐述了如何通过 `$r` 引用 JS 模块内的资源。最后,多语言支持部分讲解了如何通过 JSON 文件定义多语言资源,使用 `$t` 和 `$tc` 方法实现简单格式化与单复数格式化,为全球化应用提供便利。
296 104