CSS,居中div,收缩以适应?

CSS,居中div,收缩以适应?,css,Css,以下是我想要的: text text text text text text text text text text text text text text text text text text text text text text +-----------+ | some text | +-----------+ text text text text text text te

以下是我想要的:

text text text text text text text text text text text
text text text text text text text text text text text
                   +-----------+
                   | some text |
                   +-----------+
text text text text text text text text text text text
text text text text text text text text text text text
…其中“some text”块是一个div。我希望div是包含其文本而不进行换行所需的最小宽度。如果文本太长,没有包装就无法容纳,那么包装就可以了

<style type="text/css">
    /* online this CSS property is needed */
    p.block {
        text-align: center;
    }
    /* this is optional */
    p.block cite {
        border: solid 1px Red;
        padding: 5px;
    }    
</style>

<p>Some text above</p>
<p class="block"><cite>some text</cite></p>
<p>Some text below</p>
我不想为div设置显式宽度。我也不想设置最小宽度或最大宽度;正如我所说,如果一行中包含的文本太多而没有包装,那么包装就可以了。


<style type="text/css">
    /* online this CSS property is needed */
    p.block {
        text-align: center;
    }
    /* this is optional */
    p.block cite {
        border: solid 1px Red;
        padding: 5px;
    }    
</style>

<p>Some text above</p>
<p class="block"><cite>some text</cite></p>
<p>Some text below</p>
/*联机此CSS属性是必需的*/ p、 挡块{ 文本对齐:居中; } /*这是可选的*/ p、 块引用{ 边框:实心1px红色; 填充物:5px; } 上面的一些文字

一些文本

下面是一些文字

提示:不要将div用于文本块(用于搜索引擎优化和更好的语义目的)

类似的东西

<html>
<head>
</head>
<body style="text-align: center;">

   <div style="width: 500px; margin: 0 auto;">

       <p>text text text text text text text text text text text text text text text text text text text text text text</p>

       <div>hello</div>

       <p>text text text text text text text text text text text text text text text text text text text text text text</p>

   </div>


</body>

文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本

你好 文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本


默认情况下,DIV元素是块级别的,这意味着它们自动获得100%的宽度。要改变这一点,请使用此CSS

.centerBox {
  display:inline-block;
  text-align:center;
}


<div class="centerBox">
  Some text
</div>
.centerBox{
显示:内联块;
文本对齐:居中;
}
一些文本

编辑:更新为使用CSS类而不是内联属性,并将“块”更改为“内联块”

道具更改为Josh Stodola,尽管他并不完全正确。所需的财产是:

display: inline-block;

这解决了我的问题。耶

我不知道,这里的解决方案似乎有一部分是正确的,但实际上不起作用。根据Josh Stodola的回答,这里有一个在Firefox、Safari、Chrome和IE 7、8和9中测试过的跨浏览器解决方案

CSS:

标记:

<div id="centered-div">
    Cum sociis natoque penatibus et magnis dis<br />
    parturient montes, nascetur ridiculus mus.
</div>

自然社会的惩罚和惩罚
临产的蒙特斯,红毛猴。
要添加IE6支持(叹气),请在div中添加
\u height:[yourvalue]
。是的,带下划线


在JSFIDLE上自己测试它:

下面是一个我制作的示例,它完全符合您的要求:
(此处省略:)

警告:

我是一个CSS迷

如果我正确理解了你的问题,就没有必要设置高度或宽度,因为它们的默认设置是“自动”(也就是说,你可以使用“自动”),但唯一的问题是,如果你想更改背景或放置边框,它会使其超出所需的字段。为什么会这样,我们如何解决它,请继续阅读

或者只是复制和研究这个例子

任何一个有这个问题的人都没有意识到(假设你有这个问题并且正在使用div),div标签之间的任何东西都被认为是(为了理解的目的)一个完整的集合,这意味着在div中,所有的东西都是你想要它代表的(计算机做他们被告知的事情,而不是你想要他们做的事情),所以(例如)为了将文本对齐设置为居中,它需要整个行的空间,并且(最终)如果它有边框,它将边框它使用的所有空间。如果你明白这一点,继续读下去,如果不好,我也帮不了你

既然我们了解了会发生什么,我们该如何解决它呢?我们需要一个部分来居中,另一个来着色。在我的示例中,我使用了一个div将其居中,并将其延伸到颜色。我需要潜水舱吗?我肯定我没有。我可以通过使用p到center(或者我可以去掉p,只使用div)实现同样的效果。我这样做的原因是为了让它井然有序

事实上,只是因为我想了才意识到,但不想修复它

希望这能回答你的问题。你花了4年时间才找到答案,而我花了30分钟才找到答案(我已经学习CSS几天了)

例如:

<div class='container'>
    <div class="text">
        text text text text text text text text text text text
text text text text text text text text text text text text text text text text text
    </div>
    <div class="holder">
        <p><span>text here</span></p>
    </div>
    <div>
        text text text text text text text text text text text
text text text text text text text text text text text text text text text text text
    </div>
    </div>
注意:我将容器设置为设置宽度和高度,因为我正在同时处理一个项目,并用文本模拟全屏

还要注意的是,我这样做,使文本有一个单独的背景颜色与边框。我这样做是为了显示它的测量是独立的,并在需要时重新缩放

不客气,我也认为人们不理解你的问题。希望我做到了


p、 一个
{
边框样式:实心;
边框宽度:2倍;
边框颜色:红色;
显示:内联块;
}

一些文本

HTML

<div class="outerdiv">
<div class="innerdiv">
++++TEXT+++
</div>
</div>

我推荐flexbox!查看此网站上可能的内容

这是一款全新的浏览器,但适用于所有主要的现代浏览器(IE10使用
-ms-
前缀、IE11+、Firefox 31+、Chrome 31+、Safari 7+、…)-请参阅

基本上,垂直和水平定心以及动态尺寸调整可通过4种方式完成:

parent {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}
确保该父项的实际高度为100%。您可能还需要将
body
html
设置为100%高度


我的实现可以在我自己的个人网站上看到。

同意,但你也添加了不必要的元素(span)。它使用正确的css注释-
/***/
而不是
/
。此外,您的图像链接已断开。“宽度:自动”是多余的,可以忽略。显然,您还需要在父对象上设置文本对齐中心。一种技术上正确的方法,尽管可能将div变为inline并不是OP想要的!这不太管用,因为如果有多行文本,任何格式(边框、填充等)都会应用于每个单独的部分。但内联块确实有效!耶!您可以将其替换为“span”元素,然后无需指定“display:inline:width:auto”,但您的解决方案不会将“某些文本”放置在中心。是否可以收缩div,但仍不能让其他元素代替它?inline块在某些浏览器中不起作用。唐
<div class="outerdiv">
<div class="innerdiv">
++++TEXT+++
</div>
</div>
.outerdiv{
text-align: center;
}
.innerdiv{
display: inline-block;
}
parent {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}