Screenhot of web code
Ever struggled to position your unordered list in the centre with HTML and CSS. Struggle no more...

Centring your <ul> list with an unknown width


Posted 11 Jan 2019
Share

So you need to build that footer menu on your website and have it neatly centre aligned. Work out the width of the menu in pixels, add that to your <ul> tag in your CSS files and set the margin-left and margin-right to auto. Easy right? But what happens if you can't determine the width of the menu because the menu items can be renamed, added or removed by the client? This code will centre your unordered list regardless of the width.

The HTML:

<div class="container">
<div class="ul-container">
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul> </div>
<div class="clearfix"></div>
</div>


CSS

.ul-container {
float:right;
position: relative;
left: -50%;
}

ul { position: relative;
left: 50%;
list-style: none;
}

.clearfix {
clear: both;
}

Essentially, the float: right in the container pushes the ul-container <div> contents to the right hand side of the container <div>. The left: -50% adjusts the ul-container <div>  back across so the right-hand edge of the ul-container <div> is exactly at the 50% mark of the container <div>. The left: 50% positions the left-hand edge of the <ul> at the 50% mark of the ul-container <div>. Both position: relative attributes link the ul-container <div> and the <ul> to each other and the clear:both kills the float:right attribute.

Bang! Right in the centre. Try it yourself.

Recent articles
Building the brand new website for a job sharing platform for students.
26 Feb 2020
Fat Heads have relocated the design studio to a new Manchester location.
04 Feb 2020
We've designed the first official website for Wellington Rubber Company (WRC)
31 Jan 2020
We are pleased to say our latest project with Astra Attachment Solutions is now live!
31 Jan 2020