前端工作中,设计代码时,经常会有人手动删除行内元素之间产生的额外空隙,并通过设置margin或padding来获取想要间距吗?如代码:
<div class=“”><span class=“bgr”>去掉了间距</span><span class="bgr">去掉了间距</span><span class="bgr">去掉了间距</span><span class="bgr">去掉了间距</span><span class="bgr">去掉了间距</span><span class="bgr">去掉了间距</span></div>
这看起来很不舒服,特别扔给给JS同事后,JS同事看完代码后就会提出抱怨,代码太乱,他们希望的代码是如下:
<div class="">
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
</div>
那么有什么好的办法解决的?答案也是有的。
1.行内元素之间的“换行符”产生间距
<div class="">
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
</div>
展现效果如下:
2.行内元素之间使用“tab(制表符)”产生间距
<div class="">
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span>
</div>
展现效果如下:
3.行内元素之间使用“空格”产生间距
<div class=""><span class="bgr">换行符产生间距</span> <span class="bgr">换行符产生间距</span> <span class="bgr">换行符产生间距</span> <span class="bgr">换行符产生间距</span>
<span class="bgr">换行符产生间距</span> <span class="bgr">换行符产生间距</span>
</div>
展现效果如下:
上以上3点可以看出,行内元素之间产生的间距,是由于换行符、tab(制表符)、空格等字符引起,而字符的大小是定义字体大小来控制。
那么改变字体的大小可调整行内元素的间距么?
上图把字体从0px~18px~36px的调整,可见行内元素之间的水平间距从无到有,并不断变大,说明行内元素之间产生间距是由换行符、tab(制表符)、空格等字符引起的,那么设置字体大小font-size:0可以是不是可以在所有浏览器中除去这些间距呢?
经过测试后,可发现设置font-size:0并不能使得换行符、tab(制表符)、空格等在所有浏览器中产生的额外间距消失:
1.IE6、7浏览器始终存在的 1px 空隙
2.最新版本的Safari浏览器(5.1.7)不支持定义字体大小为 0 的浏览器
通过查找资料后,一种比较正常的解决方法如下:
1.针对IE6、7浏览器,使用word-spacing 修复 IE6、7 中始终存在的 1px 空隙,减少单词间的空白(即字间隔)
*word-spacing:-1px;
2.使用webkit的私有属性,让字体大小不受设备终端的调整,可定义字体大小小于12px
html{-webkit-text-size-adjust:none;}
问题解决了,代码如下:
结构:
<div class="span-wrap">
<span>字符产生间距</span>
<span>字符产生间距</span>
<span>字符产生间距</span>
<span>字符产生间距</span>
<span>字符产生间距</span>
<span>字符产生间距</span>
</div>
样式:
html{
-webkit-text-size-adjust:none;/* 使用webkit的私有属性,让字体大小不受设备终端的调整,可定义字体大小小于12px */
}
.span-wrap {
font-size:0;/* 所有浏览器 */
*word-spacing:-1px;/* 使用word-spacing 修复 IE6、7 中始终存在的 1px 空隙,减少单词间的空白(即字间隔) */
}
.span-wrap span{
font-size: 12px;
letter-spacing: normal;/* 设置字母、字间距为0 */
word-spacing: normal; /* 设置单词、字段间距为0 */
}
干脆直接使用浮动,简单,也不用写多余的hack,多好。的确使用浮动技术是比较好的办法,实际工作中我们使用浮动也是比较多,但是也并不是每处地方都要使用浮动,而且使用浮动后还需要清除浮动的操作。
文/丁向明
做一个有博客的web前端自媒体人,专注web前端开发,关注用户体验,加我qq/微信交流:6135833
http://dingxiangming.com
1、html标签是用来给文本添加语义的,而不是用来修饰文本的;
2、<meta charset="GBK">指定字符集(GB2312、UTF-8),html保存和指定字符一样,才不会乱码;
3、<!DOCTYPE html> DTD文档申明告诉浏览器我用的什么协议来写的,不是html标签;
4、webstorm快捷键大全:https://www.cnblogs.com/yeminglong/p/5995421.html
1、h、p 和 hr 标签
2、注释:<!-- -->
3、图片:<img src=" ">
4、换行:<br> 用于内容未完的换行
5、跳转:<a href=" "></a>
6、base 标签:<base target="_self ">
7、假链接:点击不会跳转
8、锚点:<a href="#id值"><\a>
1、无序列表(!)
2、有序列表(*)
3、定义列表
1、格式
2、属性
(1)宽高
(2)水平和垂直对齐(align 和 valign)
(3)内边距和外边距(cellpadding 和 cellspacing)
(4)细线表格
3、表格的其他标签
(1)caption:表格的标题标签,必须写在 table 内而且需紧跟 table
(2)th:th 和 td 同级,th 有加粗的效果
4、表格的结构
(1)组成:caption 标题、thead 表头、tbody 主体、tfoot 尾部
(2)说明:
5、单元格的合并
(1)水平方向:td 属性 colspan = "2";
(2)垂直方向:td 属性 rowspan = "2";
1、格式
2、input 标签
(1)type = text:
(2)password:
(3)radio:互斥要设置 name 相同;默认选中 checked
(4)checkbox:选中 checked
(5)button:
(6)image:
(7)reset:value 修改标题
(8)submit:
(9)hidden:
-----------------------------------------------------------------------------------------------------------------------
*相关标签:
3、非 input 标签
(1)select
(2)textarea
4、练习
(1)表单标签除了 button 外都可以用 value 来指定提交的值
(2)表单添加边框可以在 form 中添加 fieldset 来实现
1、video 标签
(1)格式:<video src=" " autoplay="autoplay"></video>;
(2)属性:controls(控制条)poster(海报)loop(循环)preload(预加载,与autoplay冲突)muted(静音)width/height;
(3)另一种 video 格式:解决浏览器的兼容
(4)让所有的浏览器支持 video 标签:通过 js 框架来实现
2、audio 标签
(1)使用基本和 video 一样,属性只有宽高和 poster 不能用,也是两种格式
3、details 和 summary 标签
(1)格式:
4、marquee标签(跑马灯效果)
(1)w3c 不推荐,但是浏览器的支持好
(2)属性:direction(方向)scrollamount(滚动的速度)loop(滚动次数,默认-1)behavior(滚动类型 slide)
(3)废弃的标签:<br><hr><font><b>加粗<u>下划线<i>斜体<s>删除线(无语义)
替代的标签:<strong><ins><em><del>(加入了语义)
5、字符实体
(1) ;空格 <;>; ©;版权符号
(2)理解:html 占用了的不显示的特殊字符用另外的代替符号表示,使他们正常在 html 页面上显示
TML常用标签
主要包括 结构 、 表现 和 行为 三个方面。
标准说明结构用于对 网页元素 进行整理和分类(HTML)表现用于设置网页元素的 外观样式 (CSS)行为网页模型的定义及 交互 的编写(JavaScript)
如果将web标准比喻为一只鸟,则
双标签关系分为:
<!--head标签包含title标签-->
<head>
<title></title>
</head>
<!--head标签与body标签并列-->
<head></head>
<body></body>
标签名定义<html></html>html标签<head></head>文档的头部<title></title>文档的标题<body></body>文档的主体
<!DOCTYPE html> <!--文档类型声明标签-->
<html lang="en"> <!--en:英语,zh-CN:中文-->
<head>
<!--字符集,UTF-8为万国码,统一使用-->
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
一个标题独占一行。(块级元素)
<h1>
一级标题(字号最大)
</h1>
<h2></h2>
<h3></h3>
<h4></h4>
<h5></h5>
<h6>
六级标题(字号最小)
</h6>
用于将HTML文档分割为若干段落。
特点:
<p>
这是一个段落
</p>
用于强制换行。
特点:
<br>这是换行标签
语义标签加粗<strong></strong>倾斜<em></em>删除线<del></del>下划线<ins></ins>
用于界面布局。
特点:
<div>
这是大盒子
</div>
<span>这是小盒子</span>
用于定义页面中的图像。
<!--属性与属性之间用空格分开-->
<img src="图像的url" alt="" title="">
属性说明src图片路径( 必须属性 )alt图像不能显示时的替换文本title鼠标放到图像上显示的提示文本width设置图像的宽度height设置图像的高度border设置图像的边框粗细(在CSS中修改)
注:图像的宽和高一般只修改其中一个,另一个会随之调整。
相对路径分类符号说明同一级src="文件名"下一级/src="同一级文件夹名称/文件名"上一级../src="../文件名"
注意:绝对路径用“\”分隔,相对路径用“/”分隔。
<a href="跳转目标" target="目标窗口的弹出方式">文本或图像</a>
属性作用href链接目标的url( 必须属性 )target链接页面的打方式。_self:在当前窗口打开(默认值),_blank:在新窗口打开
<!--这是一行注释-->
特殊字符描述字符的代码空格符<小于号<>大于号>&和号&¥人民币¥©版权©®注册商标®°摄氏度°±正负号±✖乘号×➗除号÷²平方²³立方³
注:重点记住前三个。
大家平时学习web前端的时候肯定会遇到很多问题,小编我为大家准备了web前端学习资料,将这些免费分享给大家!如果想要的可以找我领取
领取方式:
如果想获取这些学习资料,先关注我然后私信小编“01”即可免费领取!(私信方法:点击我头像进我主页右上面有个私信按钮)
如果这篇文章对你有帮助,请记得给我来个评论+转发噢
*请认真填写需求信息,我们会在24小时内与您取得联系。