html - 如何使两个div彼此保持固定宽度并居中?

标签 html css

请立即查看此 jsfiddle 以了解我的意思:http://jsfiddle.net/w7yayb5e/

基本上,在这个模型中,我有一个在 css 中设置样式的圆形和矩形,并且绝对定位在应该为 100% height 的背景上(无法在 jsfiddle 中使用)。

HTML:

<section class="background">
    <div class="circle"></div>
    <div class ="rectangle"></div>
</section>

CSS:

.background {
    background: #666;
    height: 275px;
    width: 100%;
}

.circle {
    display: block;
    height: 100px;
    width: 100px;
    background: red;
    position: absolute;
    left: 20%;
    top: 20%;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    border: 2px solid #fafafa;
    margin: 0 auto 40px;
    -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.15)
}

.rectangle {
    display: block;
    height: 50px;
    width: 200px;
    background: blue;
    position: absolute;
    right: 20%;
    top: 26.5%;
}

现在问题来了:当我水平拉伸(stretch)窗口时,这两个对象相互滑动,很快就会达到在真实页面上看起来很奇怪的程度。相反的情况,即窗口变小,两个对象相互滑入,响应地处理,完全改变该屏幕尺寸的布局。

我希望这两个对象彼此保持固定宽度,同时在页面上居中。

我知道如果不改变绝对定位这可能是不可能的,即使我想保留垂直定位我想我会接受此时的任何解决方案并放弃 100% 高度设计。我仔细研究了大约 10 个不同的问题,这些问题似乎与这里的同一件事有关,但没有一个答案对我有用。

最佳答案

我会将两个形状都包装到一个容器中,因为这些形状具有固定大小,所以很容易计算出该容器的高度和宽度(在您的示例中为 344x104)。

然后您只需使用以下方法将容器定位在背景的中心:

    top:0;
    bottom:0;
    right:0;
    left:0;
    margin:auto;
    position:absolute; 

而且形状不需要绝对位置,只需要一个 float 就可以使它们保持在同一直线上。

希望这已经足够清楚了。这里有一个 FIDDLE .检查一下

编辑:顺便说一句,要使 height:100% 有效,您需要将 height:100% 添加到所有父元素

关于html - 如何使两个div彼此保持固定宽度并居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28083739/

相关文章:

javascript - 需要图像最大化 HTML 页面中的鼠标悬停

javascript - 防止 ui-ressized 句柄自动触发溢出滚动条

javascript - jQuery 查找最大元素的高度

css - 在绝对定位的 div 中垂直对齐文本

javascript - angularjs中的拆分函数

html - Flutter,从网站获取特定图像

html - 在 wordpress 中阅读更多链接

python - 判断两个 html 元素是否是同级元素

css - Bootstrap 不适用于开发中的 Rails 4.2.4 应用程序

javascript - jquery flippy - 停止翻转发生