首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS -如何在缩小的屏幕宽度上折叠浮动的右侧div

CSS -如何在缩小的屏幕宽度上折叠浮动的右侧div
EN

Stack Overflow用户
提问于 2017-04-26 00:00:58
回答 2查看 71关注 0票数 1

我目前有一个小工具,看起来像我想要的大屏幕,但当它减少到移动友好的东西时有问题。

这个小部件有一个标题部分,它是两个需要向右浮动的附加字段,并且只占用它们内部的文本的宽度。我需要左边的title-text来占据剩余的空间。

this is what it looks like

我的HTML看起来像这样:

代码语言:javascript
复制
<div class="widget">
    <div class="section-title">
        <div class="title-info">        
            <div class="info-2">Info 2</div>
            <div class="info-1">Info 1</div>
        </div>
        <div class="title-text">Title</div>
    </div>
</div>

CSS看起来像这样:

代码语言:javascript
复制
.section-title {
    height: 100%;
    font-size: 1.3em;
    color: white;
}

.section-title .title-text {
    background-color: #3261AD;
    padding: 20px;
}

.section-title .title-info {
    display: inline-block;
    float: right;
}

.section-title .info-1{
    background-color: #264D8C;
    padding: 20px;
    display: inline-block;
    float: right;
}

.section-title .info-2{
    background-color: #5BB75B;
    padding: 20px;
    display: inline-block;
    float: right;
}

@media (max-width: 420px) {
    .section-title .title-text {
        /* ??? */
        display: block;
        width: 100%;
        float: left;
    }

    .section-title .title-info {
        /* ??? */
        display: block;
        width: 100%;
    }
}

当我试图减小屏幕宽度时,出现了问题。我希望title-info折叠到title-text下面,但是不能切换div,因为这样div就不会按照我想要的顺序向右浮动。有没有一种方法可以让它看起来像下面的图片,而不牺牲它的全宽外观,或者为移动设备创建一个单独的标记?

How I want it to look on mobile

EN

回答 2

Stack Overflow用户

发布于 2017-04-26 00:27:29

https://jsfiddle.net/cpc4c3kt/

代码语言:javascript
复制
.section-title {
  height: 100%;
  font-size: 1.3em;
  color: white;
}

.section-title .title-text {
  background-color: #3261AD;
  padding: 20px;
}

.section-title .title-info {
  display: inline-block;
  float: right;
}

.section-title .info-1 {
  background-color: #264D8C;
  padding: 20px;
  display: inline-block;
  float: right;
}

.section-title .info-2 {
  background-color: #5BB75B;
  padding: 20px;
  display: inline-block;
  float: right;
}

@media (max-width: 420px) {
  .section-title .title-text {
    /* ??? */
    display: block;
    width: 80%;
    padding:20px 10%;
    float: left;
    transform: translateY(-100%);
  }
  .section-title .title-info {
    /* ??? */
    display: block;
    width: 100%;
    transform: translateY(100%);
  }
  .section-title .title-info>div {
    display: inline-block;
    float: right;
    width: 40%;
    padding: 5%;
  }
}
代码语言:javascript
复制
<div class="widget">
  <div class="section-title">
    <div class="title-info">
      <div class="info-2">Info 2</div>
      <div class="info-1">Info 1</div>
    </div>
    <div class="title-text">Title</div>
  </div>
</div>

票数 1
EN

Stack Overflow用户

发布于 2017-04-26 02:21:14

尝试使用Flexbox网格布局。Flexbox布局模块内置在CSS3中,因此您不必导入任何CSS。我发现它在定位复杂的元素布局时更容易使用。

代码语言:javascript
复制
.section-title {
  display: inline-flex;
  justify-content: flex-start;
  flex-flow: row nowrap;
  font-size: 1.3em;
  color: white;
  width: 100%;
}

.title-text {
  flex-basis: 70%;
  background: #3261AD;
  order: 1;
  padding: 20px;
}

.title-info {
  flex-basis: 30%;
  order: 2;
  display: inline-flex;
  flex-flow: row nowrap;
}

.info-1 {
  background: #264D8C;
  order: 1;
  flex-basis: 50%;
  padding: 20px;
}

.info-2 {
  background: #5BB75B;
  order: 2;
  flex-basis: 50%;
  padding: 20px;
}

@media all and (max-width: 420px) {
  .section-title {
    flex-wrap: wrap;
  }
  .title-info {
    flex-wrap: nowrap;
    flex-basis: 100%;
  }
  .title-text {
    flex-basis: 100%;
  }
  .info-1 {
    flex-basis: 50%;
  }
  .info-2 {
    flex-basis: 50%;
  }
}
代码语言:javascript
复制
<div class="widget">
  <div class="section-title">
    <div class="title-info">
      <div class="info-2">Info 2</div>
      <div class="info-1">Info 1</div>
    </div>
    <div class="title-text">Title</div>
  </div>
</div>

https://jsfiddle.net/yz93799v/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43615677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档