如何垂直对齐两个不在同一div中的对象

时间:2012-08-08 09:06:15

标签: php css wordpress

我有一个wordpress页面,其中包含论坛内容上方的登录窗口小部件<div id='widget-sidebar' class='widgets_on_page'>。我想将它浮动到右边,让论坛标题在左边垂直对齐,如下所示:

enter image description here

我遇到的问题是论坛标题是动态生成的,因此我无法将它们放在同一个div中。

有什么想法吗?

以下是源代码:

        <div id="primary">
            <div id="content" role="main">


                    <div id='widget-sidebar' class='widgets_on_page'>
    <ul><li id="wp_sidebarlogin-2" class="widget widget_wp_sidebarlogin"><h2 class="widgettitle">Welcome Admin</h2><div class="avatar_container"><img src="http://localhost/wordpress/wp-content/plugins/user-avatar/user-avatar-pic.php?src=http://localhost/wordpress/wp-content/uploads/avatars/1/1344255249-bpfull.jpg&#038;w=38&#038;id=1&#038;random=1344255249" alt="" class=" avatar  avatar-38  photo user-1-avatar" width="38" height="38" /></div><ul class="pagenav"><li class="page_item"><a href="http://localhost/wordpress/wp-admin/">Dashboard</a></li><li class="page_item"><a href="http://localhost/wordpress/wp-admin/profile.php">Profile</a></li><li class="page_item"><a href=" http://localhost/wordpress/wp-login.php?action=logout&amp;redirect_to=http%3A%2F%2Flocalhost%2Fwordpress%2F%3Fforum%3Dna-forum&amp;_wpnonce=caf8874286">Logout</a></li></ul></li></ul>
  </div><!-- widgets_on_page -->

    <article id="post-2901" class="post-2901 forum type-forum status-publish hentry">
        <header class="entry-header">
                        <h1 class="entry-title"><a href="http://localhost/wordpress/?forum=na-forum" title="Permalink to NA Forum" rel="bookmark">NA Forum</a></h1>


                    </header><!-- .entry-header -->

以下是我正在使用的论坛页面模板的一部分:

        <div id="primary">
            <div id="content" role="main">

            <?php widgets_on_template("widget-sidebar"); ?>

            <?php if ( have_posts() ) : ?>

                <?php twentyeleven_content_nav( 'nav-above' ); ?>

                <?php /* Start the Loop */ ?>
                <?php while ( have_posts() ) : the_post(); ?>

                    <?php get_template_part( 'content', get_post_format() ); ?>

                <?php endwhile; ?>

                <?php twentyeleven_content_nav( 'nav-below' ); ?>

2 个答案:

答案 0 :(得分:0)

如果您不关心IE7,可以使用display: table-cell;垂直对齐容器。由于这是一个表格,它失去了浮动的能力。因此,您必须在至少一个元素上明确设置宽度。

CSS

div {
    display:        table-cell;
    vertical-align: middle;
}

div:first-child {
    width:      80%;
}

HTML

<div>
    first line<br>
    second line<br>
    last line
</div>

<div>
    just one line<br>
</div>

小提琴

http://jsfiddle.net/y96hb/

答案 1 :(得分:0)

使用窗口小部件的绝对定位应该有效。类似的东西:

div#content {
    position: relative;
}

div#widget-sidebar {
    position: absolute;
    top: 10px;
    right: 10px;
}