Web_Design 板


LINE

※ 引述《tas72732002 (蔥頭)》之銘言: 想說順便解說一下一些觀念,所以回一篇比較快一點 : 請問一下各位大大, 我在進行瀏覽器的縮放的時候, 原本正常的版型, 就會發生異常 : 正常版型 : ------- ------- : |s1 ||s2 | : | || | : --------------- : ---------------- : |s3 | : ---------------- : 縮小瀏覽器後的版型 : : ------- : |s1 | : | | : ------- : ------- : |s2 | : | | : ------- : ---------------- : |s3 | : ---------------- : 我的html : : <div class="stream-body-content"> : <div> : <!-- 左上 --> : <div class="s1"></div> : <!-- 右上 --> : <div class="s2"></div> : </div> : <!-- 下上 --> : <div class="s3"></div> : </div> : 我的css : : .stream-body-content { width:90%; background-color:black;padding: 1em; } : .s1 { width:70%; } : .s2 { border-style:groove;width:29%;height:420px;margin-bottom:1em; : float:left; } : .s3 { width:99%;height:260px;border:groove;margin-bottom:1em; : float:left;} : 要如何才可以避免我瀏覽器縮放的時候, div不會跑掉呢? 首先是釐清這狀況為何會發生: S1+S2可顯示的區為寬度70%+29%=99%,你有預留1%寬度可供給S2的邊框使用 但視窗縮小之後,S2發生放不進右邊區域的問題,就在於「預留的1%不夠放下邊框」 S2的border-style:groove不會被計算進width的29%之中, 因為預設的容器模型寬度中:「邊框的寬度要另外計算」 border-style:groove預設會產生3px的寬度,在S2的中左右邊框佔了6px 一旦你的顯示stream-body-content可用寬度<600px,就會發生這個問題(裝不下) 因為: 「邊框的6px」 > 「預留空間1% X 可用寬599px」 ================= 以下提供幾個解法: 1.直接解決邊框寬度的方式: a.設定border:none; 把所有邊框都拿掉(如果邊框不重要的話) b.縮小S1和S2百分比,增加預留的空間(不建議此解) c.把width改用px固定寬度設定(如果不需顧及自動縮放) 2.我會採用的作法 inblock:(CSS3 不支援IE8以下) 2-1. 將所有容器模型設定為 box-sizing: border-box; (CSS3專用屬性 文後解釋) 2-2. 把float:left改用 display:inline-block; (避免父容器失去高度) 2-3. 修正inline-block的bug: 將DIV寫在同一行 https://jsfiddle.net/iamstanley/bvo8Lbqd/ 3.2.我會採用的作法 float:(CSS3 不支援IE8以下) 2-1. 所有容器模型設定為 box-sizing: border-box; (CSS3專用屬性 文後解釋) 2-2. S1也設定float:left,stream-body-content的容器新增一個clear_fix的class 2-3. 使用:after產生元素將S2 S3後的float清除,避免父容器失去高度 https://jsfiddle.net/iamstanley/o06t17w4/11/ 為了方便辨識,我加了底色和內容,在參考看看吧。 ===================== 主要是三個重點: 1.box-sizing: 容器模型的寬度標準,會影響容器寬度的計算方式 在這個例子中將所有容器(*)都改用box-sizing: border-box 代表容器的寬度設定會包含了padding以及border的數值 預設的設定為content-box,padding和border都需另外計算 請參閱:http://zh-tw.learnlayout.com/box-sizing.html 2.inline-block:容器模型的表現方式,修正inline-block自動產生的4px空白 http://www.w3cplus.com/css/fighting-the-space-between-inline-block-elements 3.float:浮動元素造成父元素失去高度,一些作法會在HTML中加入新的DIV來清除 我比較推薦用CSS的:after偽元素來做,避免HTML插入太多無謂DIV 這方面相關資訊會比較多,就請自行搜尋了 以上,希望能看得懂 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.230.90.6
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Web_Design/M.1451199900.A.AFD.html ※ 編輯: sjlxup6 (125.230.90.6), 12/27/2015 15:09:30 ※ 編輯: sjlxup6 (125.230.90.6), 12/27/2015 15:15:52
1F:推 ian90911: 12/27 17:07
2F:推 Kenqr: 推 12/28 00:05
3F:推 akccakcctw: 推 12/28 09:29
4F:推 herbacin: 推 12/28 12:20
5F:推 hit1205: 推 box-sizing 12/28 19:48
6F:推 Zoover: 推~(筆記) 12/29 09:10







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP