日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

使用乱序标签来控制HTML的输出效果

發布時間:2025/3/8 HTML 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用乱序标签来控制HTML的输出效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在HTML的元素中,有一個比較特殊的元素form。我們用它來收集表單數據并提交給服務器,并且理論上說來它是沒有任何的UI被呈現的。當然如果我們在body元素后緊跟一個form,這樣一來似乎看不出來有什么UI呈現的問題,可是當form存在于別的元素之中時,就有問題了。

??? 什么問題呢?看下面的示例,由于頁面布局的需要,我需要控制頁面的滾動條。我把body的滾動條隱藏掉,然后使用一個div元素來"自制"一個滾動條,html代碼如下: <html>
????
<head>
????????
<title>Layout?Demo</title>
????????
<meta?name="author"?content="birdshome@cnblogs.com">
????
</head>
????
<body?style="border:?2px?solid?red;?overflow:?hidden;?margin:0">
????????
<div?style="border:?2px?solid?yellow;?width:100%;?height:?100%;?overflow:?auto;">
????????????
<form>
????????????????
<div?style="width:800;?height:800;?border:?2px?solid?blue"></div>
????????????
</form>
????????
</div>
????
</body>
</html>

??? 挺好的一個自制的滾動條就出來了,可是如果這時把垂直滾動條拉到底,會發現一個頁面布局缺陷,原來在form后IE會默認的加上一個<br>效果顯示,如下圖:
???

??? 按么把div移到form里面去呢?代碼示例為: ????????<form>
????????????
<div?style="border:?2px?solid?yellow;?width:100%;?height:?100%;?overflow:?auto;">
????????????????
<div?style="width:800;?height:800;?border:?2px?solid?blue"></div>
????????????
</div>
????????
</form>????
??? 這下顯示完全亂套了,見下圖:
???

??? 產生這樣的效果是為什么呢?我記得我原來說過,要讓div在overflow為auto的情況下,自動出滾動條有個條件。我當時的實驗表明的結論是,不能再width上使用百分比作為度量,而可以在height上使用百分比,后者都是指定的width和height就可以在over條件滿足時出滾動條。由于當時我的實驗樣本有限,我得到這個結論是很不確切的。

??? 因為從第一個圖中,我們看到div的width和height都是百分比度量,而水平和垂直滾動條都出來了。而能不能出滾動條的確切條件是能否更具其容器關系得到確切的width和height值,不管是不是使用百分比來做度量。當然如果容器div使用的是指定的度量,那么出滾動條是很自然的事情。可是如果是百分比怎么辦呢?如果百分比度量的parent容器的width和height是確定的值或是可以再通過其parent容器來確定的值,那么就是可以出現滾動條的。比如示例一中,由于body的width和height是確切的值,所以div的width和height都是百分比度量,仍然可以計算出確切的值。對于示例二中的情況,由于form元素沒有width和height一說,所以在其內部的元素如果使用百分比度量,就不能計算出確切的width和height的值,所以不能正確的現實overflow的狀態。

??? 一下又扯遠了,繼續說使用亂序html標簽來控制輸出效果的事情。顯然通過上面的解釋,我們只能把div放到body的第一級child上了,可是圖一中那個多出來的空白怎么弄掉呢?這里由于form標簽本身在解析時的高優先級,使得它對標簽是否時well format格式不太敏感,就是說只要有<from>和</form>成對出現就行了,管它位置上是否正確呢。所以我們把代碼改為這樣: <html>
????
<head>
????????
<title>Layout?Demo</title>
????????
<meta?name="author"?content="birdshome@cnblogs.com">
????
</head>
????
<body?style="border:?2px?solid?red;?overflow:?hidden;?margin:0">
????????
<div?style="border:?2px?solid?yellow;?width:100%;?height:?100%;?overflow:?auto;">
????????????
<form>
????????????????
<div?style="width:800;?height:800;?border:?2px?solid?blue"></div>
????????????
</div>
????????
</form>
????
</body>
</html>

??? 注意div和form是相互嵌套的,這樣的html就能得到我們說期望的UI了,如下圖:

???

??? 關于為什么要把body的滾動條hidden掉,然后自己用div來模擬?有空再來說了。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的使用乱序标签来控制HTML的输出效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。