我可以让一个 1000 像素宽的 <div> 包含一个 1300 像素宽的 <div> 吗?

Posted

技术标签:

【中文标题】我可以让一个 1000 像素宽的 <div> 包含一个 1300 像素宽的 <div> 吗?【英文标题】:Can I have a 1000px-wide <div> contain a 1300px-wide <div>? 【发布时间】:2012-03-04 00:51:32 【问题描述】:

就此而言,我可以将任何宽 div 放在更窄的 div 中吗?可以通过查看this 页面来解释我正在尝试做的事情。 我想要做的是让 div 与 1300 像素宽的 SVG 图形(其 id 为“wide2”)重叠在名为“center”的 div 上。问题是,当我将 wide2 放入中心时,它向左对齐。两个 div 类都有 margin-left: auto 和 margin-right: auto CSS 属性,假设 "center" 中包含的 div 比 "center" 窄,它们可以工作。 到目前为止,我的解决方案是关闭“center”,然后立即打开“wide2”,然后在关闭那个之后立即重新打开“center”。这不是一个很好的系统,尤其是考虑到所讨论的 SVG 的形状。 谁能帮帮我?

(每个请求)相关类的 CSS。

div.center 显示:块; 左边距:自动; 边距右:自动; 边距顶部:0; 边距底部:0; 填充底部:0; 填充顶部:0; 高度:100%; 宽度:1000px; 背景:#bebebe; /* 旧浏览器 / 背景:-moz-linear-gradient(左,#bebebe 0%,#ffffff 12%,#ffffff 88%,#bebebe 100%); / FF3.6+ / 背景:-webkit-渐变(线性,左上角,右上角,color-stop(0%,#bebebe), color-stop(12%,#ffffff), color-stop(88%,#ffffff), color-停止(100%,#bebebe)); / Chrome、Safari4+ / 背景:-webkit-linear-gradient(左,#bebebe 0%,#ffffff 12%,#ffffff 88%,#bebebe 100%); / Chrome10+,Safari5.1+ / 背景:-o-线性渐变(左,#bebebe 0%,#ffffff 12%,#ffffff 88%,#bebebe 100%); / Opera 11.10+ / 背景:-ms-线性渐变(左,#bebebe 0%,#ffffff 12%,#ffffff 88%,#bebebe 100%); / IE10+ / 背景:线性渐变(左,#bebebe 0%,#ffffff 12%,#ffffff 88%,#bebebe 100%); / W3C / 过滤器:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bebebe', endColorstr='#bebebe',GradientType=1); / IE6-9 */ 边框底部:0; 边界顶部:0; 边距顶部:0; 边距底部:0; 填充底部:0; 填充顶部:0; div.wide2 显示:块; 左边距:自动; 边距右:自动; 边距顶部:0; 边距底部:0; 填充底部:0; 填充顶部:0; 身高:180; 宽度:1300 像素; 边框底部:0; 边界顶部:0; 边距顶部:0; 边距底部:0; 填充底部:0; 填充顶部:0;

【问题讨论】:

【参考方案1】:

这个问题很不清楚。我想你想

    一个很窄的 div,我们称之为 div1,宽度 - 500px 一个更宽的 div,我们称之为 div2,宽度 - 1000px 将 div2 放在 div1 中 水平滚动 div1 以查看 div1 上的中心 div2。

您可以使用 ScrollLeft DOM 属性来执行滚动。例如:

<div style="background-color:#093; width:200px; overflow:scroll" id="sc1">&nbsp;
    <div style="background-color:#033; width:400px;">&nbsp;
    </div>
</div>
<script type="text/javascript">
    document.getElementById("sc1").scrollLeft="30";
</script>

【讨论】:

如果我没有说清楚,我很抱歉;我想让一个宽 div (wide2) 居中, 重叠一个较窄的 div,center。【参考方案2】:

这是一个 CSS 解决方案。 将以下行添加到您的 .wide2 css 类中:

margin-left: 50%;
transform: translate(-50%);

您首先将较宽的 div 移动到较窄的 div 的中心,然后将translate 向左移动内部 div。

你可以在这里看到它的实际效果:https://jsfiddle.net/89f31era/

【讨论】:

以上是关于我可以让一个 1000 像素宽的 <div> 包含一个 1300 像素宽的 <div> 吗?的主要内容,如果未能解决你的问题,请参考以下文章

根据数量动态布局固定大小的 div

重置通过css设置的图像宽度和高度

使用jquery从外部浏览器窗口中制作元素动画?

最后的一像素。

html插入一张图片是全屏宽的,缩小浏览器图片是从右边开始减少的,怎么样才能让图片从两边开始减少?

如何设置动态文本的按钮宽度等于div中最宽的按钮?