置边框最常使用border,比如这样:
border: 1px dashed #333;
这是最常规的方法了,今天再来说说其他两种方法,
这也算是一种比较常规的方法了,
outline: 1px solid;
但需要注意的是,outline是在容器的最外部,与border的渲染还是有点区别的,同时对比下:
border: 1px dashed #333;
outline: 1px solid;
外部实线是outline,内部虚线是border,为了一致,可以设置outline-offset往内缩一点:
outline-offset: -1px;
这是本文的重点,我也是刚get到此项技能,之前一直不知道background居然如此强大,直接上代码:
background: linear-gradient(90deg, #333 50%, transparent 0) repeat-x 0 0px/9px 1px, #ffffff;
这里我们只设置了上面看,而且还是虚线的,做一说明这种方式的强大,再把其他边框补上去:
background:
linear-gradient(90deg, #333 50%, transparent 0) repeat-x 0 0px/9px 1px,
linear-gradient(90deg, #333 50%, transparent 0) repeat-x 0 100%/9px 1px,
linear-gradient(0deg, #333 50%, transparent 0) repeat-y 0 0/1px 9px,
linear-gradient(0deg, #333 50%, transparent 0) repeat-y 100% 0px/1px 9px,
#ffffff;
可见,使用background非常的灵活,边框的位置可以任意调整。
现在我们已经掌握这几方式,但本文的重点是上面这种,我们现在来动手操练下:
background: linear-gradient(90deg, #29bdd9 0%, #276ace 100%) repeat-x 0 0/100% 5px
,
linear-gradient(-90deg, #29bdd9 0%, #276ace 100%) repeat-x 0 100%/100% 4px,
linear-gradient(180deg, #29bdd9 0%, #276ace 100%) repeat-y 0 0/4px 100%,
linear-gradient(0deg, #29bdd9 0%, #276ace 100%) repeat-y 100% 0/4px 100%,
#eee;
.box {
background:
linear-gradient(90deg, #333 50%, transparent 0) repeat-x,
linear-gradient(90deg, #333 50%, transparent 0) repeat-x,
linear-gradient(0deg, #333 50%, transparent 0) repeat-y,
linear-gradient(0deg, #333 50%, transparent 0) repeat-y;
background-size: 4px 1px, 4px 1px, 1px 4px, 1px 4px;
background-position: 0 0, 0 100%, 0 0, 100% 0;
}
.box:hover {
animation: linearGradientMove .3s infinite linear;
}
@keyframes linearGradientMove {
100% {
background-position: 4px 0, -4px 100%, 0 -4px, 100% 4px;
}
}
.box {
background:
linear-gradient(90deg, #FF8235,#30E8BF, #FF8235) repeat-x,
linear-gradient(90deg, #FF8235,#30E8BF, #FF8235) repeat-x,
linear-gradient(0deg, #FF8235,#30E8BF, #FF8235) repeat-y,
linear-gradient(0deg, #FF8235,#30E8BF, #FF8235) repeat-y;
background-size: 100% 8px, 100% 8px, 8px 100%, 8px 100%;
background-position: 0 0, 0 100%, 0 0, 100% 0;
}
.box:hover {
animation: linearGradientMove 1s infinite linear;
}
@keyframes linearGradientMove {
100% {
background-position: 200px 0, -200px 100%, 0 -200px, 100% 100px;
}
}
以上就是设置边框的几个小技巧。
参考:
https://www.cnblogs.com/coco1s/p/14291567.html
1.段落标签<p>
<style> p{margin:0px;} </style>
2.斜体标签<em>
<em>斜体</em>
3.粗体标签<strong>
<strong>加粗</strong>
4.<span>标签
被用来组合文档中的行内元素。使用 <span> 来组合行内元素,以便通过样式来格式化它们。
例如:
<style> span{ color:blue; } </style>
这样,<span>标签包含的文本就变成了蓝色的字体。
5.<q>标签
作用:段文本引用
例如:
<p>最初知道庄子,是从一首诗<q>庄生晓梦迷蝴蝶。望帝春心托杜鹃。</q>开始的。虽然当时不知道是什么意思,只是觉得诗句挺特别。后来才明白这个典故出自是庄子的《逍遥游》,《逍遥游》代表了庄子思想的最高境界,是对世俗社会的功名利禄及自己的舍弃。</p> 在上面的例子中,“庄生晓梦迷蝴蝶。望帝春心托杜鹃。” 这是一句诗歌,出自晚唐诗人李商隐的《锦瑟》 。因为不是作者自己的文字,所以需要使用<q></q>实现引用。 注意要引用的文本不用加双引号,浏览器会对q标签自动添加双引号。 这里用<q>标签的真正关键点不是它的默认样式双引号(如果这样我们不如自己在键盘上输入双引号就行了),而是它的语义:引用别人的话。 补充知识:语义化网页结构有助于搜索引擎的收录。同一个效果可以用很多钟方式实现,但这只方便了浏览者,而搜索引擎不知道这里到底是什么内容,这里如果你使用标签,那么就告诉浏览器这里是引用的话。而且在手持设备或移动设备不能很好支持css的基础上,浏览器会使用默认的效果,因而提供较好可读性。
6.<blockquote>标签
作用:长文本引用
例如:
<blockquote>明月出天山,苍茫云海间。长风几万里,吹度玉门关。汉下白登道,胡窥青海湾。由来征战地,不见有人还。 戍客望边色,思归多苦颜。高楼当此夜,叹息未应闲。</blockquote>
注意:浏览器对<blockquote>标签的解析是缩进样式
7.<br>标签
怎么可以让每一句诗词后面加入一个折行呢?那就可以用到<br />标签了,在需要加回车换行的地方加入<br />,<br />标签作用相当于word文档中的回车。
语法:
xhtml1.0写法:
<br/>
html4.01写法:
<br>
现在一般使用 xhtml1.0 的版本的写法(其它标签也是),这种版本比较规范。
与以前我们学过的标签不一样,<br />标签是一个空标签,没有HTML内容的标签就是空标签,空标签只需要写一个开始标签,这样的标签有<br />、<hr />和<img />。
讲到这里,你是不是有个疑问,想折行还不好说嘛,就像在 word 文件档或记事本中,在想要折行的前面输入回车不就行了吗? 不好意思,在 html 中是忽略回车和空格的,你输入的再多回车和空格也是显示不出来的。
8.<hr>标签
在信息展示时,有时会需要加一些用于分隔的横线,这样会使文章看起来整齐些。
语法:
html4.01版本
<hr>
xhtml1.0版本
<hr/>
注意:
9.<address>标签
一般网页中会有一些网站的联系地址信息需要在网页中展示出来,这些联系地址信息如公司的地址就可以<address>标签。也可以定义一个地址(比如电子邮件地址)、签名或者文档的作者身份。
语法:
<address>联系地址信息</address>
如:
<address>文档编写:lilian 北京市西城区德外大街10号</address>
10.<code>标签
在介绍语言技术的网站中,避免不了在网页中显示一些计算机专业的编程代码,当代码为一行代码时,你就可以使用<code>标签了,如下面例子:
<code>var i=i+300;</code>
注意:在文章中一般如果要插入多行代码时不能使用<code>标签了。
语法:
<code>代码语言</code>
注:如果是多行代码,可以使用<pre>标签。
11.<pre>标签
主要作用:预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。
语法:
<pre>语言代码段</pre>
如下代码:
<pre> var message="欢迎"; for(var i=1;i<=10;i++) { alert(message); } </pre>
效果如下:
注意:<pre> 标签不只是为显示计算机的源代码时用的,在你需要在网页中预显示格式时都可以使用它,只是<pre>标签的一个常见应用就是用来展示计算机的源代码。
12.<ul>标签
ul-li是没有前后顺序的信息列表。
ul{ list-style:circle; }
ul{ list-style:none }
<ul> <li>信息</li> <li>信息</li> ...... </ul>
<ul> <li>精彩少年</li> <li>美丽突然出现</li> <li>触动心灵的旋律</li> </ul>
13.<ol>标签
ol-li是有前后顺序的信息列表
<ol> <li>信息</li> <li>信息</li> ...... </ol>
<ol> <li>前端开发面试心法 </li> <li>零基础学习html</li> <li>JavaScript全攻略</li> </ol>
<ol>在网页中显示的默认样式一般为:每项<li>前都自带一个序号,序号默认从1开始。
14.<div>标签
15.<table>标签
1)属性:border
作用:规定表格边框的宽度
2)属性:cellpadding
作用:单元格中的文本与单元格边框的间距
3)属性:cellspacing
作用:单元格之间的间距
table、tbody、tr、th、td
1、<table>…</table>:整个表格以<table>标记开始、</table>标记结束。
2、<tbody>…</tbody>:当表格内容非常多时,表格会下载一点显示一点,但如果加上<tbody>标签后,这个表格就要等表格内容全部下载完才会显示。如右侧代码编辑器中的代码。
3、<tr>…</tr>:表格的一行,所以有几对tr 表格就有几行。
4、<td>…</td>:表格的一个单元格,一行中包含几对<td>...</td>,说明一行中就有几列。
- 常用属性: colspan:规定单元格可横跨的列数,值为数字 rowspan:规定单元格可横跨的行数,值为数字
5、<th>…</th>:表格的头部的一个单元格,表格表头。
6、表格中列的个数,取决于一行中数据单元格的个数。
总结:
16.<caption>标签
表格还是需要添加一些标签进行优化,可以添加标题和摘要。
摘要的内容是不会在浏览器中显示出来的。它的作用是增加表格的可读性(语义化),使搜索引擎更好的读懂表格内容,还可以使屏幕阅读器更好的帮助特殊用户读取表格内容。语法:
<table summary="表格简介文本">
用以描述表格内容,标题的显示位置:表格上方。语法:
<table> <caption>标题文本</caption> <tr> <td>…</td> <td>…</td> … </tr> … </table>
17.<a>标签
<a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a>
例如:
<a href="http://www.imooc.com" title="点击进入慕课网">click here!</a>
上面例子作用是单击click here!文字,网页链接跳转到http://www.imooc.com这个网页。
<a href="目标网址" target="_blank">click here!</a>
<a>标签还有一个作用是可以链接Email地址,使用mailto能让访问者便捷向网站管理者发送电子邮件。
注意:如果mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的参数每一个都以“&”分隔。引号只有一对!
例子: <a href="mailto:yy@qq.com? cc=xx@qq.com & bcc=aa@qq.com & subject=邮件主题 & body=邮件内容">
那么: 1)A知道自己发送邮件给了B1、B2、B3,并且抄送给了C1、C2、C3,密送给了D1、D2、D3。 2)B1知道这封是A发送给B1、B2、B3的邮件,并且抄送给了C1、C2、C3,但不知道密送给了D1、D2、D3。 3)C1知道这封是A发送给B1、B2、B3的邮件,并且抄送给了C1、C2、C3,但不知道密送给了D1、D2、D3。 4)D1知道这封是A发送给B1、B2、B3的邮件,并且抄送给了C1、C2、C3,而且密送给了自己,但不知道密送给了D2、D3。 5)邮箱地址 mailto: <a href="mailto:qiujie@staff.weibo.com">发送</a> 6)抄送地址 cc: <a href="mailto:qiujie@staff.weibo.com?cc=zz@sina.com">发送</a> 7)密件抄送地址 用分号分隔: <a href="mailto:qiujie@staff.weibo.com?bcc=zz@sina.com">发送</a> 8)多个收件人、抄送人、密送人 ; bcc: <a href="mailto:qiujie@staff.weibo.com;zz@sina.com">发送</a> 9)邮件主题 subject: <a href="mailto:qiujie@staff.weibo.com?subject=邮件主题">发送</a> 10)邮件内容 body: <a href="mailto:qiujie@staff.weibo.com?body=邮件正文">发送</a> 例子: <a href="mailto:yy@imooc.com;10001@qq.com?cc=10002@qq.com&bbc=madanteng@qqhelp.com&subject=观了不起的盖茨比有感。&body=你好,对此评论有些想法。">对此影评有何感想,发送邮件给我</a>
18.<img>标签
在网页的制作中为使网页炫丽美观,肯定是缺少不了图片,可以使用
标签来插入图片。
[站外图片上传中……(2)] <img src = "myimage.gif" alt = "My Image" title = "My Image" />
src:标识图像的位置; alt:指定图像的描述性文本,当图像不可见时(下载不成功时),可看到该属性指定的文本; title:提供在图像可见时对图像的描述(鼠标滑过图片时显示的文本); 图像可以是GIF,PNG,JPEG格式的图像文件。 路径有两种填写方式:绝对路径、相对路径 相对路径:相对于我们当前 html 文件的位置来写路径即可! ./表示当前目录,../表示上一级目录
19.<form>标签
注意:
1、所有表单控件(文本框、文本域、按钮、单选框、复选框等)都必须放在<form></form>标签之间(否则用户输入的信息可提交不到服务器上哦!)。
2、method:post/get的区别这一部分内容属于后端程序员考虑的问题。
语法:
<form method="传送方式" action="服务器文件">
<form> :<form>标签是成对出现的,以<form>开始,以</form>结束。 action :浏览者输入的数据被传送到的地方,比如一个PHP页面(save.php)。 method : 数据传送的方式(get/post)。 <form method="post" action="save.php"> <label for="username">用户名:</label> <input type="text" name="username" /> <label for="pass">密码:</label> <input type="password" name="pass" /> </form>
20.<input>标签
语法:
<form> <input type="text/password" name="名称" value="文本" /> </form>
举例: <form> 姓名: <input type="text" name="myName"/><br/> 密码: <input type="password" name="pass"/> </form> value="xxx" 替换为 placeholder="xxx" 的体验更好一些,placeholder属性为 HTML 5 的新属性。placeholder 属性提供可描述输入字段预期值的提示信息(hint)。该提示会在输入字段为空时显示,并会在字段获得焦点时消失。
语法:
<input placeholder="text"/> 注释:placeholder 属性适用于以下的 <input> 类型:text, search, url, telephone, email 以及 password。
注意:同一组的单选按钮,name 取值一定要一致,比如上同一个名称“gender”,这样同一组的单选按钮才可以起到单选的作用!
type:
name:为文本框命名,以备后台程序ASP 、PHP使用。
value:为文本输入框设置默认值。(一般起到提示作用)
21.<textarea>标签
语法:
<textarea rows="行数" cols="列数">文本</textarea>
举例:
<form method="post" action="save.php"> <label>联系我们</label> <textarea cols="50" rows="10" >在这里输入内容...</textarea> </form>
22.<select>标签
语法:
<select> <option value="提交的值">显示的值</option> ... </select> 设置selected="selected"属性,则该选项就被默认选中。 selected="selected"
<select multiple="multiple"> 然后选择时候按ctrl点鼠标选中
<option disabled="disabled">
把相关的选项组合在一起
属性 label:给选项组命名
属性 disabled:禁用该选项组
23.<label>标签
<label for="控件id名称">
注意:标签的 for 属性中的值应当与相关控件的 id 属性值一定要相同。
<form> <label for="male">男</label> <input type="radio" name="gender" id="male" /> <br /> <label for="female">女</label> <input type="radio" name="gender" id="female" /> <label for="email">输入你的邮箱地址</label> <input type="email" id="email" placeholder="Enter email"> </form>
24.<map>标签
使用 map 标签可以给图片某块区域加超链接
使用方法:
1)为 map 标签首先加上 id 属性用来为 map 标签定义一个唯一的名称
2)为了保证兼容性再加上 name 属性,属性值与 id 的值相同
3)为 map 标签所作用的图片加上 usemap 属性,属性值为 #id 名称
4)在 map 标签内嵌套 area 标签来实现给指定区域加链接
<area shape="" coords="" href ="" alt="" /> shape 属性:定义链接区域的形状,常用值 rect、circle coords 属性:确定区域的精确位置。填写坐标即可,以父元素左上角为原点,可借助qq截图来得到想要的坐标 href 属性:填写链接地址即可 alt 属性:给链接加一些说明信息
例子:
<map id="img1" name="img1"> <area shape="rect" coords="184,33,391,258" href="http:www.baidu.com" alt="百度一下" target="_blank" /> <area shape="circle" coords="507,287,20" href="http://www.sifangku.com" alt="私房库我的博客" target="_blank" /> </map>
注意:
25.<iframe>标签
创建包含另外一个文档的内联框架(即行内框架)
属性:
值:1、0
作用:规定是否显示框架周围的边框。
作用:定义 iframe 的宽度
作用:定义高度
作用:给 iframe 命名
值:yes、no、auto
作用:规定是否在 iframe 中显示滚动条
作用:规定在 iframe 中显示的文档的 URL
可以是本地的 html 文件,也可以是远程的 html 文件
标签写法
1)不允许写结束标签的元素
area,base,br,col,command,embed,hr,img,input,keygen,link,meta,paran,source,track,wbr。这些标签都是单标签例如:br 标签,不可以这样<br></br>,只能<br />这样来关闭标签。
2)可以省略结束标记的元素有:
li,dt,dd,p,rt,rp,optgroup,option,colgroup,thead,tbody,tfoot,tr,td,th。
3)可以省略全部标记的元素有
html,head,body,colgroup,tbody
例如:disabled,readonly,checked 等只写属性而不写属性值得时候当做 ture 不写属性表示 false
要求:属性值不包含 空字符串,<,>,=, ‘
标签嵌套探讨
1.html 规定我们必须要嵌套着写的标签
例如:页面头部是嵌套在 head 标签里面的,主体内容都是嵌套在 body 标签里面的表单的内容是嵌套在 form 标签里面的,dt、dd 是嵌套在 dl 标签里面的,li 是嵌套到ul 标签里面的,等等...
2.块级元素可以嵌套内联元素,但是内联元素不能包含块元素
<div> <span>我是一个 span 元素</span> </div> —— 对 <span> <div>div 元素</div> </span> —— 错
3.内联元素可以嵌套内联元素
<a href="#"> <span></span> </a> —— 对
4.块级元素与块级元素嵌套注意点
<p><ol><li></li></ol></p> —— 错 <p><div></div></p> —— 错
喜欢前端的小伙伴们可以在评论区留言,寻找和小冯童鞋一样热爱前端的友人,让我们一起玩转前端的世界!
模型是CSS布局的基础,理解它的每个组成部分对于创建整洁、响应式的网页至关重要。本文将深入探讨盒模型的四个主要组成部分:边距(Margin)、边框(Border)、填充(Padding)和内容(Content),并解释它们如何共同工作来创建网页布局。
在CSS中,盒模型是一种用于设计和布局的概念模型,它将HTML元素视为一个盒子。这个盒子包括了元素的内容、内边距、边框和外边距。理解盒模型对于控制元素的大小和在页面上的位置至关重要。
+-------------------------------+
| Margin |
| +-------------------------+ |
| | Border | |
| | +-------------------+ | |
| | | Padding | | |
| | | +-------------+ | | |
| | | | Content | | | |
| | | +-------------+ | | |
| | +-------------------+ | |
| +-------------------------+ |
+-------------------------------+
每个盒子从里到外包括:
边距是盒子外部的空间,它决定了元素之间的间隔。边距是透明的,不可见,不会被背景颜色或背景图片覆盖。
/* 单边边距设置 */
.element {
margin-top: 10px; /* 上边距 */
margin-right: 15px; /* 右边距 */
margin-bottom: 10px; /* 下边距 */
margin-left: 15px; /* 左边距 */
}
/* 简写形式 */
.element {
margin: 10px 15px; /* 上下边距 | 左右边距 */
}
边距可以用来创建元素之间的空间,或者将元素与页面边缘分开。当两个元素的垂直边距相遇时,它们会合并成一个边距,这个现象称为边距折叠。
边框是盒子的一个可视化组件,围绕着内边距和内容。边框的样式、宽度和颜色都可以自定义。
.element {
border-style: solid; /* 边框样式 */
border-width: 2px; /* 边框宽度 */
border-color: black; /* 边框颜色 */
}
/* 简写形式 */
.element {
border: 2px solid black;
}
边框对于突出显示元素或分隔内容非常有用。你还可以只为边框的一边或几边设置样式。
填充是围绕内容内部的空间,它可以增加内容和边框之间的距离。与边距不同,填充区域会被背景颜色或背景图片覆盖。
.element {
padding-top: 5px; /* 上填充 */
padding-right: 10px; /* 右填充 */
padding-bottom: 5px; /* 下填充 */
padding-left: 10px; /* 左填充 */
}
/* 简写形式 */
.element {
padding: 5px 10px; /* 上下填充 | 左右填充 */
}
填充对于控制元素内部的空白区域非常有用,它可以帮助改善内容的可读性。
内容是盒子中的文字、图片或其他媒体。内容的大小可以通过设置width和height属性来控制,但实际可见区域的大小还会受到内边距和边框的影响。
.element {
width: 200px;
height: 150px;
}
内容区域是设计和布局的核心,所有的文本和媒体都在这里显示。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Margin, Border, Padding Example</title>
<style>
body {
font-family: 'Arial', sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 20px;
}
.container {
max-width: 800px;
margin: auto;
background-color: white;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.header {
background-color: #007bff;
color: white;
padding: 20px;
text-align: center;
}
.content {
padding: 20px;
border: 1px solid #ddd;
margin: 20px;
}
.box {
background-color: #007bff;
color: white;
padding: 10px;
margin: 10px;
border: 3px solid #0056b3;
text-align: center;
}
.footer {
background-color: #333;
color: white;
padding: 10px;
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>Welcome to My Page</h1>
</div>
<div class="content">
<h2>Understanding CSS Box Model</h2>
<p>The CSS box model is essentially a box that wraps around every HTML element. It consists of margins, borders, padding, and the actual content. This model allows us to create space between elements and style them effectively.</p>
<div class="box">Content Box</div>
</div>
<div class="footer">
Footer Content
</div>
</div>
</body>
</html>
理解盒模型是前端开发的基础,它允许我们精确控制元素的布局和间距。通过恰当地使用边距、边框、填充和内容,我们可以创建出既美观又功能强大的网页设计。随着响应式设计的兴起,现代CSS框架已经将盒模型的概念整合进其核心,使得跨设备布局变得更加一致和简单。
在日常开发中,经常使用开发者工具来检查和调试盒模型的各个部分,确保我们的样式表现按照预期工作。掌握盒模型,你将能够更加自信地处理网页布局的挑战。
*请认真填写需求信息,我们会在24小时内与您取得联系。