响应式 <li> 占用空间

Posted

技术标签:

【中文标题】响应式 <li> 占用空间【英文标题】:responsive <li> to occupy space 【发布时间】:2015-04-09 03:19:44 【问题描述】:

我该怎么做,让.tabs__item2占据右边的剩余空间?

我希望无论屏幕尺寸如何,.tabs__item2 都会将剩余空间填充到其内部的蓝色大 div 的边缘。也许像width:100%

我不希望 .tabs__item2 在调整页面大小时堆叠,而是在调整页面大小时缩小。

由于某种原因,它的作用就像.tabs__item2 右侧也有一堆填充一样。

有什么想法吗?

www.techagesite.com/delete3.htm

<div class="container-dock">
    <!-- This example will switch at a 760px width breakpoint -->
    <div class="tabs tabs--md">
        <ul class="tabs__list list-unstyled">
            <li class="tabs__item  tabs__item--active">
                                <a href="#tab-1" class="tabs__link">
                <img src="thumbs/rsz_1rsz_1desktop.png"></a> </li>
            <li class="tabs__item">
                <a href="#tab-3" class="tabs__link">
                <img src="thumbs/rsz_1rsz_mobile.png"></a></li>
            <li class="tabs__item">
                <a href="#tab-2" class="tabs__link"><img src="thumbs/rsz_1rsz_fb.png"></a>
            </li>
            <li class="tabs__item">
                <a href="#tab-4" class="tabs__link"><img src="thumbs/rsz_1rsz_1twitter.png"></a></li>
            <li class="tabs__item2">
                <img src="thumbs/rsz_1rsz_1twitter.png"></a></li>

        </ul>
        <div class="tabs__content">
            <div id="tab-1" class="tabs__area tabs__area--active">

                      <div class="top_grow11">  
            <a href="http://www.techagesite.com/hd-wii-wallpapers-mario-kart-super-mario-galaxy-2.htm">
                <img class="cats" src="thumbs/super-mario-galaxy-hd-desktop-background_small1.jpg">

            </a>
        </div>

          <div class="top_grow11">
            <a href="http://www.techagesite.com/free-music-wallpaper-big-music-wallpapers.htm">
                <img class="cats" src="thumbs/neon-background-music-bars-wallpaper-1920x1200_small1.jpg">

            </a>
        </div>

          <div class="top_grow11">
            <a href="http://www.techagesite.com/awesome-minecraft-hd-desktop-wallpapers-1080p-backgrounds-1920x1080.htm">
                <img class="cats" src="thumbs/awesome-minecraft-gaming-wallpaper-1920x1080-hd-creeper_small.png">

            </a>
        </div>

          <div class="top_grow11">
            <a href="scooby-doo-wallpapers-character-backgrounds-coloring-pages-the-gang.htm">
                <img class="cats" src="thumbs/scooby-doo.jpg">

            </a>
        </div>

          <div class="top_grow11">
            <a href="free-hd-neon-colours-desktop-wallpapers-download.htm">
                <img class="cats" src="thumbs/bright-abtsract-glow-hd-wallpaper-1920x1080-hd_small1.jpg">

            </a>
        </div>

  <div class="top_grow11">
            <a href="funny-wallpaper-pics-quotes-photos-and-stuff.htm">
                <img class="cats" src="thumbs/funny-wallpaper-pics-quotes-photos-poo-1600x1200_small.jpg"></img>                
                </a></div></div>
            <div id="tab-2" class="tabs__area">
                                  <div class="top_grow11">
            <a href="facebook-timeline-covers-photos-851x315.htm">
                <img class="cats" src="thumbs/fb-cover_small.jpg"></img>                
                </a></div>
            </div>
            <div id="tab-3" class="tabs__area"><div class="top_grow11">

                <a href="hd-minecraft-mobile-phone-wallpapers-1080x1920-steve-creeper.htm">
                <img class="cats" src="thumbs/minecraft1.jpg"></a>
        </div>

        <div class="top_grow11">

                <a href="hd-disney-frozen-wallpapers-for-mobile-phones-1080x1920.htm">
                <img class="cats" src="thumbs/frozen1.jpg"></a>
        </div>

        <div class="top_grow11">

                <a href="legend-of-zelda-ocarina-of-time-mobile-phone-wallpapers.htm">
                <img class="cats" src="thumbs/zelda1.jpg"></a>
        </div>

        <div class="top_grow11">

                <a href="hd-super-mario-bros-world-mobile-phone-wallpapers-1080x1920.htm">
                <img class="cats" src="http://www.techagesite.com/thumbs/mario1.jpg"></a>
        </div>

        <div class="top_grow11">

                <a href="lg-g2-g3-htc-one-max-s-m8-mobile-phone-wallpapers.htm">
                <img class="cats" src="thumbs/lg1.jpg"></a>
        </div>

        <div class="top_grow11">

                <a href="android-hd-mobile-phone-wallpapers-1080x1920.htm">
                <img class="cats" src="thumbs/android1.jpg"></a>
        </div></div><div id="tab-4" class="tabs__area">
              <div class="top_grow11"><a href="twitter-headers-and-background-covers-1500x500.htm">  
<img class="cats" src="http://placehold.it/350x150"></a>
            </div></div>
            <div id="tab-5" class="tabs__area">

            </div>
            <div id="tab-6" class="tabs__area">

            </div></div>
    </div>

</div></div>

@media (max-width: 990px) 
  .tabs--lg 
    border: 1px solid #0A3D5D;

  
  .tabs--lg .tabs__content 
    border-width: 0;
    border-top-width: 1px;
    border-color: #0A3D5D;
  
  .tabs--lg .tabs__list 
    background: #0A3D5D;
    margin: 0;
    margin-bottom: -1px;
    display: inline-block;
    width: 100%;
  
  .tabs--lg .tabs__list .tabs__item 
    overflow: hidden;
    position: absolute;
    height: 0;
  
  .tabs--lg .tabs__list .tabs__item--active 
    height: auto;
    position: relative;
  
  .tabs--lg .tabs__list--open .tabs__item 
    position: relative;
    height: auto;
  
  .tabs--lg .tabs__list--open .tabs__item--active > .tabs__link:after 
    content: none;
  
  .tabs--lg .tabs__item 
    width: 100%;
    max-width: 100%;
    border-right: 0;
    text-align: left;
  
  .tabs--lg .tabs__item--active > .tabs__link 
    background-color: #0A3D5D;
    color: white;
    border: 0;
  
  .tabs--lg .tabs__item--active > .tabs__link:hover 
    color: white;
  
  .tabs--lg .tabs__item--active > .tabs__link:after 
    content: "";
    width: 0;
    height: 0;
    border: .5em solid transparent;
    border-top-color: #0A3D5D;
    float: right;
    margin-top: .75em;

  


@media (max-width: 1070px) 
  .tabs--xl 
    border: 1px solid #0A3D5D;

  
  .tabs--xl .tabs__content 
    border-width: 0;
    border-top-width: 1px;
    border-color: #0A3D5D;

  
  .tabs--xl .tabs__list 
    background-color: #0A3D5D;
    margin: 0;
    margin-bottom: -1px;
    display: inline-block;
    width: 100%;
  
  .tabs--xl .tabs__list .tabs__item 
    overflow: hidden;
    position: absolute;
    height: 0;
  
  .tabs--xl .tabs__list .tabs__item--active 
    height: auto;
    position: relative;
  
  .tabs--xl .tabs__list--open .tabs__item 
    position: relative;
    height: auto;
  
  .tabs--xl .tabs__list--open .tabs__item--active > .tabs__link:after 
    content: none;
  
  .tabs--xl .tabs__item 
    width: 100%;
    max-width: 100%;
    border-right: 0;
    text-align: left;
  
  .tabs--xl .tabs__item--active > .tabs__link 
    background-color: #0A3D5D;
    color: white;
    border: 0;
  
  .tabs--xl .tabs__item--active > .tabs__link:hover 
    color: white;
  
  .tabs--xl .tabs__item--active > .tabs__link:after 
    content: "";
    width: 0;
    height: 0;
    border: .5em solid transparent;
    border-top-color: #0A3D5D;
    float: right;
    margin-top: .75em;

  


.tabs__list 
  margin: 0;
  margin-bottom: -1px;
  background: #0A3D5D;


.tabs__item 
  margin-bottom: 0;
  display: inline-block;
  width: auto;
  vertical-align: top;
  background: #0A3D5D;


.tabs__item--active > .tabs__link 
  border: 1px solid #0A3D5D;

  background: #0A3D5D;
  border-bottom: 0;
  position: relative;
  z-index: 3;
  color: #333333;


.tabs__item--active > .tabs__link:hover 
  color: #262626;


.tabs__link 
  font-weight: 500;
  color: #333333;
  padding: .0em 0em;
  line-height: 0;
  display: block;
  text-decoration: none;
  background: #0A3D5D;

.tabs__link:hover 
  text-decoration: underline;


.tabs__area 
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity .5s linear;
          transition: opacity .5s linear;
  height: 0;
  background: #0A3D5D;


.tabs__area--active 
  opacity: 1;
  visibility: visible;
  -webkit-transition: opacity .5s linear;
          transition: opacity .5s linear;
  height: auto;
  background: #0A3D5D;


.tabs__content 
  margin-bottom: 0;
  background: #0A3D5D;
  border: 0px solid #0A3D5D;
  overflow: hidden;
  position: relative;
  clear: both;
  padding: 0px;
  padding: 0.0rem;



.border   
  border: 3px solid #006699;
border-bottom-right-radius:8px;
border-bottom-left-radius:8px;
border-top-right-radius:8px;
border-top-left-radius:8px;

.container-dock 
  padding: 0rem;
  width: 100%;
  max-width: 700px;
  margin: auto;
  background: #0A3D5D;


.list-unstyled 
  padding-left: 0;
  list-style: none;


.cats 
    width: 100%;
  height: auto;

    .top_grow11

    float: left;
    margin-right: 0px;
    width: auto;
    height: 100%;
  
.tabs__item2 
  margin-bottom: 0;
  display: inline-block;
  width: auto;
  vertical-align: top;


【问题讨论】:

请在这里也提供html和css - How to create a Minimal, Complete, and Verifiable example @Techagesite 请查看下面的答案并将最能解决您问题的答案标记为已接受。 【参考方案1】:

看看这个使用 CSS Flex Box 布局的例子。

.flex 
  display: flex;

.block 
  width: 80px;
  min-width: 80px; /* Make other boxes static */
  height: 80px;
  background-color: black;
  margin: 10px;

.fill 
  flex: 1;
<div class="flex">
  <div class="block"></div>
  <div class="block"></div>
  <div class="block"></div>
  <div class="block"></div>
  <div class="block fill"></div>
</div>

【讨论】:

是否有可能做到只有块填充 div 会弯曲,其余的保持静态? @Techagesite 添加min-width 就可以了。我刚刚在我的示例中添加了它,所以请查看 :) 我如何将它合并到这个 www.techagesite.com/delete3.htm 可以完成还是我在浪费我的时间? @Techagesite 考虑用div 替换uldisplay: flex。您需要将flex: 1 属性赋予您的.tabs__item2 不能用ul完成吗?我无法将它们更改为 div,因为我也需要 ul 类。【参考方案2】:

解决此问题的一种方法是应用以下样式:

ul
  display: table;
  width: 100%;


li
  display: table-cell;
  text-align: center;

使用此 CSS,您的导航链接将如下所示:

Source.

【讨论】:

谢谢,但我希望它们彼此齐平:) @Techagesite 抱歉,flush next to each other 是什么意思? @Techagesite 如果您的意思是&lt;li&gt; 之间没有空格,那么只需在.tabs__list 之间执行text-align: center;。无需其他样式。 齐平,彼此相邻,中间没有空格。我需要这样做,以便 .tabs__item2 填充右侧的剩余空间。因此,您在第二个标题图像之间看到的空间延伸到蓝色 div 的末尾。那里的空间量取决于屏幕大小,我需要 .tabs__item2 来响应并根据空间量进行扩展和收缩。 @Techagesite 在这种情况下,请使用display: flex;。请参阅 Kagami Sascha Rosylight 的回答。【参考方案3】:

问题是,您的图像非常小。所以它们看起来会像素化。但是,如果你想要它无论如何这里是样式:-

.tabs__item

    width: 20%;


.tabs_item>a>img

    width:100%;

【讨论】:

以上是关于响应式 <li> 占用空间的主要内容,如果未能解决你的问题,请参考以下文章

如何制作响应式 Bootstrap 3 分页

响应式网站在苹果手机上向下滑动出现卡顿怎么解决?

另一个 div 中的 div 没有占用其大小的 100%。它在左右两边留出相等的空间

如何隐藏 HTML 表格行 <tr> 使其不占用空间?

在部分上显示 gif 图像以占用空间

查看java程序中对象占用空间大小