当前位置: 首页 > 面试题库 >

CSS:在限制最大宽度的同时以响应方式将流体div居中(无px宽度)?

聂琨
2023-03-14
问题内容

我已经看过一百万个关于如何居中放置块元素的问题,而且似乎有几种流行的方法可以做到,但是它们都依赖于固定的像素宽度。然后,要么margin:0 auto使用绝对定位,要么使用绝对/相对定位left:50%; margin-left:[-1/2 width];等等。我们都知道,如果元素的宽度设置为%,则此方法将无效。

真的没有办法真正流畅地执行此操作吗?我说的是使用%宽度( 不是 用固定宽度越来越小的设置十二个媒体查询)。

当心:有大量的解决方案使用流行语“响应”,但 没有
回答我的问题(因为它们始终使用固定宽度)。这是一个例子。

更新:
我差点忘了:如何处理限制居中元素的最大宽度并仍将其保持在中心?请参阅@smdrager的回答下的我的评论。现实生活中的例子。我希望弹出消息或包含文本段落的灯箱效果在窗口中居中显示,文本根据宽度流畅地环绕。但是我不希望文本框延伸得太远,以至于文本难以阅读(想象一个4英尺长的屏幕,其中三段被延伸到一行文本上)。如果您向大多数方法添加最大宽度,则达到最大宽度时,居中框将停止居中。


问题答案:

水平和垂直居中

实际上,以百分比为单位的高度和宽度会使居中更加容易。您只需将div左端和左端偏移一半的面积即可。

因此,如果您的身高是40%,则100%-40%= 60%。因此,您需要上下30%。其次是:30%的技巧。

仅水平居中

使用内联块。但是,此处的其他答案不适用于IE 8及更低版本。您必须为此使用CSS hack或条件样式。这是黑客版本:

.inlineblock { 
    display: inline-block;
    zoom: 1;
    display*: inline; /* ie hack */
}

编辑

通过使用媒体查询,您可以结合两种技术来达到所需的效果。唯一的并发症是身高。您使用嵌套的div在%宽度和

@media (max-width: 1000px) {
    .center{}
    .center-inner{left:25%;top:25%;position:absolute;width:50%;height:300px;background:#f0f;text-align:center;max-width:500px;max-height:500px;}
}
@media (min-width: 1000px) {
    .center{left:50%;top:25%;position:absolute;}
    .center-inner{width:500px;height:100%;margin-left:-250px;height:300px;background:#f0f;text-align:center;max-width:500px;max-height:500px;}
}


 类似资料:
  • 问题内容: 我有一个宽度可变的容器DIV。 在此我有4个DIV,所有300px x 250px … 我想发生的是框1向左浮动,框4向右浮动,框2和3在它们之间均匀分布。我希望间隔也要流畅,以便将浏览器做得更小,空间也要变小。 问题答案: 可以在IE6 +和所有现代浏览器中使用! 我将您要求的尺寸减半,以使其易于使用。 text-align: justify结合在一起.stretch是在处理定位。

  • 我已经尝试了几个小时来解决这个问题,我正在努力,不管我做什么,它拒绝在我添加max-width或min-width的瞬间调用媒体标记中的CSS。为了测试,我让media标记使主体变红,并将min-width降低到可笑的低。什么都没发生。如果我留下屏幕标记而不留下任何其他东西,它就会调用它 CSS: HTML: 请原谅代码的绝对混乱,但我还没来得及清理这个问题,就在我对这个问题失去理智之前。

  • 问题内容: 编写CSS媒体查询时,有什么方法可以使用“或”逻辑指定多个条件? 我正在尝试做这样的事情: 问题答案: 使用逗号指定两个(或多个)不同的规则: 从https://developer.mozilla.org/en/CSS/Media_queries/ …此外,您可以在逗号分隔的列表中组合多个媒体查询;如果列表中的任何媒体查询为true,则将应用关联的样式表。这等效于逻辑“或”运算。

  • (在stackoverflow上已经提出了类似的问题,但这个问题有更多的限制,例如特定的最大宽度、最大高度、所需的特定高度和宽度,并且没有布局偏移。) 我想要一个具有以下约束的响应图像: 最大宽度:100%,这样它就不会溢出到右侧,并且在减小屏幕宽度时会有响应 如何使用CSS实现这一点? (如果CSS无法实现这一点,那么可能是在JavaScript中?) 我尝试了几个CSS功能,例如对象适合度和最

  • 问题内容: 如何为宽度创建CSS规则 默认使用100%宽度 如果100%的宽度超过了某个像素的宽度(例如512像素),则该宽度将被限制为该像素的宽度 我不确定宽度和最大宽度关系,也不知道如何支持calc()或可以表达这一点。这需要与最新的WebKit浏览器和Firefox 4配合使用。不需要IE8等支持。 问题答案: 这实际上是的预期用途。如果元素的计算值(实际值)超过,它将被限制为最大值,而不是

  • 我的一个程序中的java类遇到了一个奇怪的问题。谢天谢地,我能够使用示例取自Oracle网站: https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/uiswing/examples/components/FrameDemoProject/src/c