html - 向右浮动元素不完全向右浮动

标签 html css css-float css-transitions

我有两列框。有左右两边。由于某种原因,右侧并没有一直 float 到容器的末端。我没有任何余地可以阻止它这样做,所以我不确定为什么它没有完全结束。

你可以在 fiddle 里看到:

Here

如果您查看上面写着“单击服务以了解更多信息”的小文本/注释,它会一直 float 到右侧并位于容器的末端。右侧标签需要与那些标签一样远。

另外,旁注。你可以看到我有一个悬停效果,从左到右拉出一个新的背景颜色。我不确定为什么背景颜色不会像滑动时那样过渡。我有主要元素的转换代码。

有谁知道为什么这两件事不起作用?

#service-tabs {
    width: 100%;
    padding: 100px 0;
    height: auto;
    background: #F0F0F0;
    overflow: auto;
}
#service-tabs-container {
    width: 70%;
    margin: 0 auto;
    text-align: center;
}
#service-tabs-container-title {
    color: #404040;
    font-size: 1.3em;
    margin-bottom: 15px;
    text-align: left;
}
#service-tabs-container-title2 {
    color: #578570;
    font-size: 2.8em;
    margin-bottom: 20px;
    line-height: 1.4em;
    text-align: left;
}
#service-tabs-container-note {
    margin: 40px 0;
    font-size: .7em;
    text-align: right;
}
#service-tabs-left {
    float: left;
    width: 50%;
}
#service-tabs-right {
    float: right;
    width: 50%;
}
.service-tab-block {
    position: relative;
    font-size: 1.6em;
    padding: 3.5em 20px;
    /*padding: 1em 25px;*/
    width: 85%;
    text-align: center;
    color: #FFF;
    display: block;
    margin: 30px 0;
    cursor: pointer;
    border: none;
    background-image: linear-gradient(to right, #000 50%, #578570 50%);
    background-size: 201% 100%;
    background-repeat: no-repeat;
    background-position: bottom right;
    transition:width 0.2s ease;
    -webkit-transition:width 0.2s ease;
}
.service-tab-block.active {
    background: #000;
    color: #FFF;
}
.service-tab-block:hover {
    -webkit-transition: all 0.2s ease-in;
    transition: all 0.2s ease-in;
    background-position: bottom left;
    color: #FFF;
    border: none;
}


<div id="service-tabs">
  <div id="service-tabs-container">
    <div id="service-tabs-container-title">WHAT WE OFFER</div>
    <div id="service-tabs-container-title2">Our Services</div>
    <div id="service-tabs-container-note">* Click a service to find out more.</div>
    <div id="service-tabs-left">
        <h1 class="service-tab-block" id="service_tab1">DEMOLITION</h1>
        <h1 class="service-tab-block" id="service_tab2">CONCRETE CRUSHING</h1>
        <h1 class="service-tab-block" id="service_tab3">SCRAP METAL RECYCLING</h1>
    </div>
    <div id="service-tabs-right">
        <h1 class="service-tab-block" id="service_tab4">ASSET RECOVERY</h1>
        <h1 class="service-tab-block" id="service_tab5">FOUNDATION REMOVAL</h1>
        <h1 class="service-tab-block" id="service_tab6">SITE WORK</h1>
    </div>
  </div>
</div>

最佳答案

Updated fiddle (为左/右浮动着色,以便您可以看到发生了什么)

因为你的 CSS 规则中的这两个属性

.service-tab-block {
    padding: 3.5em 20px;
    width: 85%;

我更改/添加了它

.service-tab-block {
    width: calc(100% - 60px);   /* compensate for the padding and margin */
    ....
}
#service-tabs-right .service-tab-block {
    margin-left: 20px;
}

对于过渡,改变

transition:width 0.2s ease;
-webkit-transition:width 0.2s ease;

transition:all 0.2s ease;
-webkit-transition:all 0.2s ease;

关于html - 向右浮动元素不完全向右浮动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37866599/

相关文章:

jquery - 过渡不适用于高度 :0px

CSS:如何跨不同列获取到 "line up"的行?

javascript - 如何在 jQuery animate() 中使用 box-shadow?

html - CSS 灵活元素布局 : fixed left position but sink down to avoid overlapping?

html - CSS 将两个具有相对宽度的 div 并排放置

javascript - 除了 onkeyup 之外,如何调用 JavaScript 事件?

javascript - Fabric JS 父子对象

javascript - 单击链接时显示子 div

CSS水平菜单链接问题

html - Css 样式 <ul> 无法正常工作