html – 相同元素的相对宽度和填充

html – 相同元素的相对宽度和填充,第1张

概述为了使我的网站更具响应性,我正在努力学习如何流畅地定义元素.今天我遇到了一个我最终解决的情况,但我不明白为什么修复工作,我想. 我无法链接到网站(NDA),但我已经提出了一些包含相关元素的示例页面: 错:http://cruxwire.com/wrong.html 右:http://cruxwire.com/right.html 我所拥有的是剩下的三个div.我正在尝试为它们添加填充(以百分比表示 为了使我的网站更具响应性,我正在努力学习如何流畅地定义元素.今天我遇到了一个我最终解决的情况,但我不明白为什么修复工作,我想.

我无法链接到网站(NDA),但我已经提出了一些包含相关元素的示例页面:

错:http://cruxwire.com/wrong.html
右:http://cruxwire.com/right.html

我所拥有的是剩下的三个div.我正在尝试为它们添加填充(以百分比表示)并使用target / context = result,然后使用* 100(因为它是一个百分比.)

我的Etwan marcotte的响应式网页设计副本说:“在元素上设置灵活的填充时,你的上下文就是元素本身的宽度.”我给div的宽度为20%.由于父元素是945px,因此每个div的像素宽度为189px.我想添加20px的填充,所以20/189 = 0.1058201058201058.我为10.58201058201058%的每个div添加了一个填充.

这最终给每个div一个100px的填充,而不是20px.我最终意识到填充是基于父元素的宽度计算的,而不是div本身.

我的解决方案是在每个现有的div周围添加一个额外的div,这样我可以将宽度应用于一个,将填充应用于另一个,这样就解决了问题.

为什么填充计算相对于其父元素而不是它自己的元素?

如何在不添加额外div的情况下执行此 *** 作?

你可以在这篇文章中看到链接到的页面上的代码,我也在下面添加了它.

错误:

<!DOCTYPE HTML><head><Meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"><Title>WRONG</Title><style>#main { wIDth:945px; margin:0 auto; padding:40px 0; background-color:blue; }#slIDeshow { background-color:green; }.threecolumn { float:left; wIDth:20%; padding:10.58201058201058%; background-color:yellow; } /* 20px/189px */.slIDe { position:relative; margin:0 1%; background-color:red; }p { background-color:white; margin:0; padding:0; }</style></head><body><div ID="main">    <div ID="slIDeshow">        <h1>WRONG</h1>        <div >            <p>According to FireBUG,this element has 100px padding.</p>        </div>        <div >            <p>According to FireBUG,this element has 100px padding.</p>        </div>        <div ></div>    </div></div></body></HTML>

对:

<!DOCTYPE HTML><head><Meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"><Title>RIGHT</Title><style>#main { wIDth:945px; margin:0 auto; padding:40px 0; background-color:blue; }#slIDeshow { background-color:green; }.threecolumn { float:left; wIDth:20%; margin:0 1%; background-color:yellow; } .slIDe { position:relative; padding:10.58201058201058%; background-color:red; } /* 20px/189px */p { background-color:white; margin:0; padding:0; }</style></head><body><div ID="main">    <div ID="slIDeshow">        <h1>RIGHT</h1>        <div >            <div >                <p>According to FireBUG,this element has 20px padding.</p>            </div>        </div>        <div >            <div >                <p>According to FireBUG,this element has 20px padding.</p>            </div>        </div>          <div >            <div >                <p>According to FireBUG,this element has 20px padding.</p>            </div>        </div>        <div ></div>    </div></div></body></HTML>
解决方法 W3框模型包括计算宽度的填充.你真正想要做的是将需要填充的内容包装在另一个div中,并对该div应用一个余量,该余量相当于你不能使用的填充:

示例HTML:

<div ID="nav">    <div  ID="left">        <div>            <h1>blah blah</h1>        </div>    </div>    <div  ID="mIDdle">        <div>            <h1>blah blah</h1>        </div>    </div>    <div  ID="right">        <div>            <h1>blah blah</h1>        </div>    </div></div>

CSS示例:

.block {    wIDth:33%;    height:50%;    position:relative;    float:left;    background-color:#CCC;    /** Instead of applying a 20px padding here... */}.block>div {    margin:20px; /* we apply a 20px margin here */}

http://jsfiddle.net/AlienWebguy/Yf34X/1/

总结

以上是内存溢出为你收集整理的html – 相同元素的相对宽度和填充全部内容,希望文章能够帮你解决html – 相同元素的相对宽度和填充所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1053871.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存