UL 标签未以边距居中:0 自动; CSS样式

发布于 2024-10-14 18:46:58 字数 1479 浏览 6 评论 0原文

我正在尝试创建位于 div 中心的寻呼机。基本上代码看起来像这样:

   <div class="cms-pager">
       <ul>
             <li>1</li>
             <li>2</li>
             <li>3</li>
       </ul>
   </div>

如果我像这样指定 CSS:

  .cms-pager {  } 
  .cms-pager ul { background-color: somecolor; margin: 0 auto; }
  .cms-pager ul li { padding: 5px; margin: 3px; }

那么 UL 不会居中,因为它在整个 div 上都有宽度/背景颜色。我不会工作。

如果我像这样指定 CSS:

  .cms-pager {  } 
  .cms-pager ul { width: 200px; background-color: somecolor; margin: 0 auto; }
  .cms-pager ul li { padding: 5px; margin: 3px; }

则 UL 位于页面中央。问题是我必须指定固定宽度:200px;如果我只有 1 或 2 个链接,那么它就位于正中央。所以这对我来说是行不通的,我需要 UL 真正具有实际 LI 标签的宽度并精确指定宽度。

如果我像这样指定CSS:

  .cms-pager { margin: 0 auto; } 
  .cms-pager ul { float: left; background-color: somecolor; margin: 0 auto; }
  .cms-pager ul li { padding: 5px; margin: 3px; }

那么UL背景仅在LI 1 - 3下是灰色的。所以我知道尺寸是好的。但因为我必须使用 float: left 样式,它会自动向左对齐并忽略 div margin: 0 auto style;

如果我像这样指定 CSS:

  .cms-pager { margin: 0 auto; text-align: center } 
  .cms-pager ul {background-color: somecolor; margin: 0 auto; display: inline-block; }
  .cms-pager ul li { padding: 5px; margin: 3px; }

此版本适用于 Firefox、Chrome,但不适用于 IE6/7,因为它不能与 inline-block 一起正常工作;

这个问题有什么解决办法吗?是使用不同标签(如 table tr td )的唯一解决方案还是可以用它做任何事情?

I am trying to create pager which will sit in the center of the div. Basically code looks like this:

   <div class="cms-pager">
       <ul>
             <li>1</li>
             <li>2</li>
             <li>3</li>
       </ul>
   </div>

If I specify CSS like this:

  .cms-pager {  } 
  .cms-pager ul { background-color: somecolor; margin: 0 auto; }
  .cms-pager ul li { padding: 5px; margin: 3px; }

then UL wont center as it has width/background color across whole div. I will just not work.

If I specify CSS like this:

  .cms-pager {  } 
  .cms-pager ul { width: 200px; background-color: somecolor; margin: 0 auto; }
  .cms-pager ul li { padding: 5px; margin: 3px; }

then UL is centered on the page. Problem is that I had to specify fixed width: 200px; and if I have only 1 or 2 links it is on exactly in the center. So this is no go for me, I need UL to really have width of actual LI tags and to exactly specified by width.

If I specify CSS like this:

  .cms-pager { margin: 0 auto; } 
  .cms-pager ul { float: left; background-color: somecolor; margin: 0 auto; }
  .cms-pager ul li { padding: 5px; margin: 3px; }

then UL background is grey only under LI 1 - 3. So I know the size is Ok. But because I had to use float: left style it is automatically aligned to left and ignores div margin: 0 auto style;

If I specify CSS like this:

  .cms-pager { margin: 0 auto; text-align: center } 
  .cms-pager ul {background-color: somecolor; margin: 0 auto; display: inline-block; }
  .cms-pager ul li { padding: 5px; margin: 3px; }

this version works for Firefox, Chrome but not for IE6/7 as it doesnt work correctly with inline-block;

Is there any solution to this problem? Is the only solution to use diffent tags like table tr td or can anything be done with this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绾颜 2024-10-21 18:46:58

这足够接近了吗?没有浮动,没有内联块。只是简单的块和对齐。

.cms-pager, .cms-pager ul {
    margin: 0 auto;
}

.cms-pager {
    text-align: center;
}

.cms-pager ul li {
    display: inline;
    width: 10px;
    background-color: gray;
    padding: 5px;
}

这是预览。

Is this close enough? No floats, no inline blocks. Just plain ol' blocks and aligns.

.cms-pager, .cms-pager ul {
    margin: 0 auto;
}

.cms-pager {
    text-align: center;
}

.cms-pager ul li {
    display: inline;
    width: 10px;
    background-color: gray;
    padding: 5px;
}

Here's a preview.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文