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/cn.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灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP