How do I center list items inside a UL element?

后端 未结 12 2473
旧时难觅i
旧时难觅i 2020-11-29 23:12

How do I center list items inside a ul without using extra divs or elements. I have the following. I thought text-align:center would do the trick. I can\'t seem

相关标签:
12条回答
  • 2020-11-29 23:28

    I overcame the problem with this solution.

    HTML:

    <div class="list-wrapper">
        <ul>
            <li>a</li>
            <li>b</li>
            <li>c</li>
            <li>d</li>
            <li>e</li>
        </ul>
    </div>
    

    CSS:

    .list-wrapper {
       text-align: -webkit-center;
    }
    .list-wrapper ul {
        display:block;
    }   
    
    0 讨论(0)
  • 2020-11-29 23:29

    I added the div line and it did the trick:

    <div style="text-align:center">
    <ul>
    <li>test</li>
    <li>test</li>
    <li>test</li>
    <li>test</li>
    <li>test</li>
    </ul>
    </div>
    
    0 讨论(0)
  • 2020-11-29 23:31

    Another way to do this:

    <ul>
      <li>One</li>
      <li>Two</li>
      <li>Three</li>
    </ul>
    
    ul {
      width: auto;
      display: table;
      margin-left: auto;
      margin-right: auto;
    }
    
    ul li {
      float: left;
      list-style: none;
      margin-right: 1rem;
    }
    

    http://jsfiddle.net/f6qgf24m/

    0 讨论(0)
  • 2020-11-29 23:33
    li{
        display:table;
        margin:0px auto 0px auto;
    }
    

    This should work.

    0 讨论(0)
  • 2020-11-29 23:34

    I have run into this issue before and found that sometimes padding is the issue.

    By removing padding from the ul, any li's set to inline-block will be nicely centred:

    * {
    	box-sizing: border-box;
    }
    
    ul {
    	width: 120px;
    	margin: auto;
    	text-align: center;
    	border: 1px solid black;
    }
    
    li {
    	display: inline-block;
    }
    
    ul.no_pad {
    	padding: 0;
    }
    
    p {
    	margin: auto;
    	text-align: center;
    }
    
    .break {
    	margin: 50px 10px;
    }
    <div>  
    		<p>With Padding (Default Style)</p>
                <ul class="with_pad">
                    <li>x</li>
                    <li>x</li>
                    <li>x</li>
                    <li>x</li>
                </ul>
    		<div class="break"></div>
    		<p>No Padding (Padding: 0)</p>
    			<ul class="no_pad">
                    <li>x</li>
                    <li>x</li>
                    <li>x</li>
                    <li>x</li>
                </ul>
    	<div>

    Hope that helps anyone running into this same issue :)

    Cheers,

    Jake

    0 讨论(0)
  • 2020-11-29 23:34

    I had a problem slimier to yours I this quick and its the best solution I have found so far.

    What the output looks like

    Shows what the output of the code looks like The borders are just to show the spacing and are not needed.


    Html:

        <div class="center">
          <ul class="dots">
            <span>
              <li></li>
              <li></li>
              <li></li>
            </span>
          </ul>
        </div>
    

    CSS:

        ul {list-style-type: none;}
        ul li{
            display: inline-block;
            padding: 2px;
            border: 2px solid black;
            border-radius: 5px;}
        .center{
            width: 100%;
            border: 3px solid black;}
        .dots{
            padding: 0px;
            border: 5px solid red;
            text-align: center;}
        span{
            width: 100%;
            border: 5px solid blue;}
    

    Not everything here is needed to center the list items.

    You can cut the css down to this to get the same effect:

        ul {list-style-type: none;}
        ul li{display: inline-block;}
        .center{width: 100%;}
        .dots{
            text-align: center;
            padding: 0px;}
        span{width: 100%;}
    

    0 讨论(0)
提交回复
热议问题