كيفية استخدام المحاذاة العمودية:وسط؛على وجه صحيح؟

StackOverflow https://stackoverflow.com/questions/2439267

  •  19-09-2019
  •  | 
  •  

سؤال

أريد أن تتم محاذاة قائمتي (التنقل) مع مركز الصورة (الشعار).حاولت استخدام vertical-align: middle;, ، لكن لم أتمكن من تشغيله عندما قمت بتحريك الصور يمينًا ويسارًا.

هذا هو الكود الخاص بي:

لغة البرمجة:

<div id="head">
    <img id="logo" src="logo.png" />
    <ul id="nav">
        <li><a href="#">Item 1</a></li>
        <li><a href="#">Item 2</a></li>
        <li><a href="#">Item 3</a></li>
    </ul>
</div>

CSS:

#head {
    margin-top: 2px;
    width: 100%;
}
    #logo {
        float: left;
        }

    ul#nav {
        float: right;
        }

        ul#nav li {
            display: inline;
            list-style-type: none;
            }

أخذت كل vertical-align: middle;من حيث وضعتها (لقد اختبرتها في كل عنصر، على الرغم من أنه كان من المفترض أن يتم تطبيقها فقط على #logo، مما قرأته.)

على أي حال، سيكون موضع تقدير أي مساعدة.

هل كانت مفيدة؟

المحلول

Vertical-align:middle محاذاة متوسط ​​العنصر الفرعي إلى متوسط ​​العنصر الأصلي.إذا كانت جميع العناصر التابعة لها float:left, ، فإن ارتفاع الأصل يبلغ 0 بكسل، وبالتالي يكون متوسطه أعلى من العناصر الفرعية.

لذلك، يمكنك إضافة أ <br style='clear:both' /> بعد القائمة الخاصة بك وسيحصل DIV أخيرًا على حجمه الرأسي.

نصائح أخرى

الجدول مع صف واحد يأتي مفيد هنا.

<div id="head">

<table>
<tr>

<td>
  <h1>Fluid Heading</h1>
</td>

<td style="width: 5%">
  <img id="logo" src="logo.png" />
</td>

<td style="width: 5%">
  <ul id="nav">
    <li><a href="#">Item 1</a></li>
    <li><a href="#">Item 2</a></li>
    <li><a href="#">Item 3</a></li>
  </ul>
</td>

</tr>
</table>

</div>

CSS:

.head td { vertical-align: middle; }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top