【问题标题】:align an image and some text on the same line without using div width?在不使用 div 宽度的情况下将图像和一些文本对齐在同一行?
【发布时间】:2012-07-27 15:06:45
【问题描述】:

好的,所以我试图将图像(包含在 div 中)和一些文本(也包含在 div 中)对齐在同一行上,而不设置文本的宽度,我该怎么做?这是我目前所拥有的。

<div id="container">

    <div id="image" style="float:left;">
        <img src="tree.png"  align="left"/>
    </div>

    <div id="texts" style="float:left;"> 
        A very long text(about 300 words) 
    </div>

</div>

文字短时,图片和文字可以放在同一行,但我的文字很长,会自动跳到图片下方的另一行。

基本上,现在是这样的:http://puu.sh/MPw2 我想做这个:http://puu.sh/MPvr

我已经尝试解决这个问题 3 个小时了,我太菜鸟了,请帮忙? :S

【问题讨论】:

  • 我不清楚您要做什么。我认为您应该尝试为您的两个 div 设置新样式。尝试:“显示:内联;”。你使用内联样式只是为了问你的问题,或者你也在你的项目中这样做?另外,我不太确定您是否真的想为“图像”和“文本”使用“id”而不是“类”。
  • 基本上,现在是这个:puu.sh/MPw2我想做这个:puu.sh/MPvr
  • 好的,所以你必须为你的#image添加一个宽度,为你的#texts添加一个宽度......你可以尝试向它们中的每一个添加如下内容:“width:30%; ",只是一个例子。由于您的 div 没有宽度并且它们是“块”元素,因此每个元素都使用 100% 的现有宽度,即使您“浮动”它们,它们也会位于另一个下方。
  • 是的,我尝试过使用宽度,但如何在不使用宽​​度的情况下使其工作? :S 因为我试图让它在 iPhone 上工作,一旦我设置了一些宽度,在 iphone 上(因为屏幕很薄)将看不到整个文本
  • 你在 iphone 上有固定的宽度,所以你也可以在那里设置固定的宽度。想象一下 iphone 的宽度为 960x640px。您可以将 #container 设置为 width: 640px;你的#image到宽度:300px;和你的#texts宽度:300px;这将起作用。

标签: css image html alignment


【解决方案1】:

如果空间不可用,浮动将导致环绕。

您可以使用display:inlinewhite-space:nowrap 来实现此目的。 Fiddle

<div id="container" style="white-space:nowrap">

    <div id="image" style="display:inline;">
        <img src="tree.png"/>
    </div>

    <div id="texts" style="display:inline; white-space:nowrap;"> 
        A very long text(about 300 words) 
    </div>

</div>​

【讨论】:

  • @user1561559。 It is working for me 在 IE9、FF14、Safari 5.1.1、Chrome 20 中。哪里不适合你?
  • 好吧,当文字很长的时候,比如300字什么的,文字会超出屏幕宽度,那我就得横向滚动才能看到整个文字了
  • 在 2018 年仍然表现出色;应该是公认的答案。
【解决方案2】:

试试

<img src="assets/img/logo.png" align="left" />
Text Goes here

简单的 HTML 属性:

align="left"

属性的其他值:

  • 底部
  • 中间
  • 顶部

【讨论】:

    【解决方案3】:

    我知道这个问题已经超过 6 年了,但我仍然想分享我使用表格的方法,这不需要任何 CSS。

    <table><tr><td><img src="loading.gif"></td><td> Loading...</td></tr></table>
    

    干杯! 快乐编码

    【讨论】:

    • 我们不应该在 2018 年使用表格来显示表格数据以外的任何内容!
    【解决方案4】:

    要获得所需的效果,您应该将图像标签放置在与文本相同的 div 中。然后在图像上设置float: left 属性。希望这会有所帮助!

    【讨论】:

      【解决方案5】:

      当我看到这个问题时,我正在做一个不同的项目,这是我使用的解决方案,它似乎有效。

      #[image id] , p {
              vertical-align: middle;
              display: inline-block;
          }
      

      如果没有,请尝试:

      float:right;
      
      float:left;
      

      display: inline 而不是 inline-block

      这对我有用,希望这有帮助!

      【讨论】:

        【解决方案6】:

        方法一:

        内联元素不使用您指定的任何宽度或高度。 为了避免两个 div 并像这样使用:

         <div id="container">
        <img src="tree.png"  align="left"/>
        <h1> A very long text(about 300 words) </h1>
        </div>
            <style>
                    img {
                        display: inline;
                        width: 100px;
                        height: 100px;
                    }
                    h1 {
                        display: inline;
                    }
                </style>
        

        方法二:

        如下更改你的 CSS

        .container div {
            display: inline-block;
            }
        

        方法3:

        设置宽度的简单方法 试试下面的css:

        .container div {
        overflow:hidden;
        position:relative;
        width:90%;
        margin-bottom:20px;
        margin-top:20px;
        margin-left:auto;
        margin-right:auto;
        }
        .image {
        width:70%;
        display: inline-block;
        float: left;
        }
        .texts { 
        height: auto;
        width: 30%;
        display: inline;
        }
        

        【讨论】:

          【解决方案7】:

          试试

          <p>Click on <img src="/storage/help/button2.1.png" width="auto" 
          height="28"align="middle"/> button will show a page as bellow</p>
          

          对我有用

          【讨论】:

          • 宽度、高度和对齐参数已过时。
          【解决方案8】:

          我在最后一个答案的基础上使用display:table 用于外部 div,display:table-cell 用于内部 div。

          这是使用 CSS 唯一对我有用的东西。

          【讨论】:

            【解决方案9】:

            只需将img css设置为display:inlinedisplay:inline-block

            【讨论】:

              【解决方案10】:

              你写了一个不必要的div,就这样吧

              <div id="texts" style="white-space:nowrap;">
                   <img src="tree.png"  align="left"/>
                   A very long text(about 300 words) 
              </div>

              你正在寻找的是 white-space:nowrap;这段代码可以解决问题。

              【讨论】:

                【解决方案11】:

                来自another answer

                <table>
                <tr style="background-color:white">
                    <th><b>To solve your doubts &ensp; &nbsp;</b></th>
                    <th><img src="https://stackoverflow.design/assets/img/logos/so/logo-stackoverflow.png" style="width:150px" style="display:inline-block; "/></th><th style="float:right"></th>
                    <th><b>&ensp; has the requisite clout.</b></th>
                </tr>
                </table>
                

                演示:

                :D 有点俗气,但我想,为什么不呢。

                【讨论】:

                  猜你喜欢
                  • 2021-10-05
                  • 2013-06-09
                  • 2012-04-23
                  • 2014-04-15
                  • 2011-08-09
                  • 2023-03-27
                  • 2012-11-15
                  • 1970-01-01
                  • 2020-08-25
                  相关资源
                  最近更新 更多