前端工作中,設計代碼時,經常會有人手動刪除行內元素之間產生的額外空隙,并通過設置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:在新窗口打開
<!--這是一行注釋-->
特殊字符描述字符的代碼空格符<小于號<>大于號>&和號&¥人民幣¥?版權©?注冊商標®°攝氏度°±正負號±?乘號×?除號÷2平方²3立方³
注:重點記住前三個。
大家平時學習web前端的時候肯定會遇到很多問題,小編我為大家準備了web前端學習資料,將這些免費分享給大家!如果想要的可以找我領取
領取方式:
如果想獲取這些學習資料,先關注我然后私信小編“01”即可免費領取!(私信方法:點擊我頭像進我主頁右上面有個私信按鈕)
如果這篇文章對你有幫助,請記得給我來個評論+轉發噢
*請認真填寫需求信息,我們會在24小時內與您取得聯系。