【问题标题】:divs won't align despite float:left and display:inline-block尽管 float:left 和 display:inline-block div 不会对齐
【发布时间】:2012-08-01 01:14:26
【问题描述】:

我正在尝试让三个<div class="forward-link"> 对齐以始终沿同一基线。我试过float:leftdisplay:inline-block,但似乎没有任何效果。有任何想法吗? 该网站是使用 php/Wordpress 制作的,但下面是呈现的 HTML 和 CSS。

另外,http://jsfiddle.net/mugUG/

呈现的 HTML:

<div id="landing-content">
    <div id="landing-brief">
        <ul>
            <li>
                <h2><a href="http://growingedgecoaching.com/blog">Growing Edge Blog</a></h2>
                    <p>“Embrace the messy imperfect genius. Seek to be misunderstood by creative minds.” ~Ross Martin One thing I have learned over the years as an entrepreneur is that when I am in my most creative space, I have to release being a perfectionist and jump into my creative messiness. I need to create space that allows [...]</p>
                <div class="forward-link">
                    <p><a href="http://growingedgecoaching.com/home"><span style="color:#b8bf33">Continue Reading</span></a></p>
                </div><!-- end forward-link -->
            </li>
            <li>
                <h2><a href="index.php?page_id=27">Meet Mary Anne</a></h2>
                <p>Mary Anne is the founder of Growing Edge Coaching™, a coaching and consulting company, where she helps individuals and companies develop powerful strategies to move forward in their life, their work, or their business. Her coaching is founded on her 20 years of experience as a manager and senior leader in non-profits.</p>
                <div class="forward-link">
                    <p><a href="index.php?page_id=27"><span style="color:#b8bf33">More About Mary Anne</span></a></p>
                </div><!-- end forward-link -->
            </li>
            <li>
                <h2><a href="#">Recent Tweets</a></h2>
                <div id="twitter-feed">

                        <ul>
                                                    <li>
                        RT @LollyDaskal: regret is often the result of too many excuses. #leadfromwithin #leadership                            </li>
                                                    <li>
                        What you do in small doses becomes big doses in your life.                          </li>
                                                    <li>
                        RT @ThisIsSethsBlog: Seth's Blog: Two kinds of unique http://t.co/1TJ1Vuf9                          </li>
                                                    </ul>
                    </div><!-- end twitter-feed -->
                <div class="forward-link">
                    <p><a href="https://twitter.com/growing_edge"><span style="color:#b8bf33">Follow @Growing_Edge</span></a></p>
                </div><!-- end forward-link -->
            </li>
        </ul>
    </div><!-- end brief -->
    <div id="landing-social">
        <h1>Growing Edge Coaching™ works with individuals and companies to attain positive actions and powerful results in their work and life.</h1>
        <div id="icons">
            <ul>
                <li><a href="http://www.facebook.com/maryanneflanagan"><img src="http://growingedgecoaching.com/wp-content/themes/twentyeleven/images/facebook.png" alt="Growing Edge Coaching Facebook" id="fb" /></a></li>
                <li><a href="https://twitter.com/growing_edge"><img src="http://growingedgecoaching.com/wp-content/themes/twentyeleven/images/twitter.png" alt="Growing Edge Coaching Twitter" id="tw" /></a></li>
                <li><a href="http://www.linkedin.com/in/maryanneflanagan"><img src="http://growingedgecoaching.com/wp-content/themes/twentyeleven/images/linkedin.png" alt="Growing Edge Coaching Linked In" id="li" /></a></li>
            </ul>
        </div><!-- end icons -->
    </div><!-- end social -->
    <div id="landing-contact-info">
        <p><span>PHONE</span> 917.238-9726 | <span>E-MAIL</span> <a href="mailto:maflanagan@growingedgecoaching.com?Subject=contact via website"><span style="color:#333333">maflanagan@growingedgecoaching.com</span></a></p>
    </div><!-- end contact-info -->
</div><!-- end landing-content -->

CSS

/* Landing Content */

#landing-content {
    background: #f7f7f7;
    clear: both;
    margin-top: 40px;
}

#landing-brief {
    width: 860px;
    margin: 0 auto;
    padding-top: 40px;
}

#landing-brief ul li {
    display: inline-block;
    height: 200px;
    width: 250px;
    position: relative;
    vertical-align: top;
}

#landing-brief ul li:last-child {
    padding-right: none;
}

#landing-brief #twitter-feed {
    font-family: Verdana, Geneva, Tahoma, sans-serif;
    font-size: 75%;
    line-height: 1.5;
    color: #333333;
    margin-left: -28px;
}

#landing-brief #twitter-feed ul li {
    padding-bottom: 5px;
}

#landing-brief .forward-link {
    position: absolute;
    padding-left: 0; 
    padding-bottom: 0;
    padding-top: 10px;
}

【问题讨论】:

  • CSS 不懂 PHP。如果您发布呈现的 HTML(浏览器中的“查看源代码”)而不是 PHP 代码,将会更有帮助。
  • 另外,将您的问题放入jsfiddle.net(点击保存,然后发布新的 URL)会更快地得到答案(人们不必通过阅读代码来追溯您的思维过程)。当您以简化的形式重构问题时,它还可以帮助您更好地理解问题。
  • 那么您正在尝试做的事情看起来像like this,并且您希望“阅读更多”链接位于容器底部?
  • @AymanSafadi,感谢您的提示。我已经用渲染的 HTML 替换了 php。
  • @thirdender 基本上是的。不过,如果我可以在内容和链接之间留出一点(相等的)空间,那就太好了。这是我目前在 jsfiddle 中的内容-jsfiddle.net/mugUG

标签: css css-float alignment


【解决方案1】:

所以你的LI 元素是水平对齐的吗?

您想要做的是为您的所有LI 元素提供一个相等的高度,足以容纳每个 LI 中的内容。

然后制作LI元素position:relative

然后使forward-link元素position:absolute, left:0, bottom:0

这应该可以解决问题。

【讨论】:

  • 这样做会将左侧的所有元素堆叠在一起。
  • 抱歉,我已经更新了上面的内容。 LI 元素应该是 position:relative
【解决方案2】:

为您的所有 3 个 div 提供不同的 ID。 1st 2 div 将浮动作为左侧,第三个 div 将浮动作为右侧。 所有 3 个 div 都放在 overflow hidden 的主 div 中。

【讨论】:

  • 我没有注意到这样做有任何变化.. ?
【解决方案3】:

Fiddle

ul {
  position: relative;
}
li {
  position: static; /* The default if no position property is applied */
  padding-bottom: 1.6em;
}
a {
  position: absolute;
  bottom: 0; /* Or, in the linked Fiddle, 1em to accommodate the padding
                on the bottom of the UL tag. */
}

这只适用于 IE7+(IE6 不支持只有一条边的绝对定位元素(leftrighttopbottom)属性),并且仅当元素保证并排。当一个元素被绝对定位但没有指定边缘属性时,浏览器会尝试将元素放在它没有position: absolute; 的位置。只给元素一个边缘属性(例如示例中的bottom: 1em;)会导致浏览器将其从“默认”位置移动以匹配该单个边缘属性。因此,如果仅指定了 topbottom,则可以将 leftright 保留为自动计算。另见W3C Wiki: CSS absolute and fixed positioning

使UL标签position: relative;,但LI标签position: static;position的默认值,不是绝对的……绝对元素没有布局,并且需要在父元素上固定高度)。在底部为LI 标签提供足够的填充,以便在底部为您想要的内容腾出空间。在上面的例子中,内容是一行文本,对于大多数字体来说大约是 1.2em。我在示例中为间距添加了更多填充,并使其约为 1.6em。然后将A 标记为position: absolute; bottom: 0;,它们将移动到最近定位的祖先的底部,或者在本例中为UL 标记。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 2011-11-30
    相关资源
    最近更新 更多