删除并排div之间的空间

时间:2014-06-25 21:10:43

标签: html css

我创建了一个div,允许用户选择一个部分名称,它会显示带有标题的相应图片。部分列表和图像完全并排显示,并且两者都占据相同的高度,我遇到了一些麻烦。此外,我的图片标题(figcaption)不遵守figure宽度,但我可能只是忽略了这一点。我尝试了其他Stackoverflow问题答案所建议的floatoverflowdisplay属性调整的许多不同组合,但它们似乎都没有产生正确的输出。

这是代码的JSFiddle:http://jsfiddle.net/8We2Y/

代码也包含在这里的代码中。

CSS:

#main {
    width: 50%;
    padding: 15px;
    margin: 0 auto;
}

.gamemode {
    background: #eee;
    padding: 19px;
    border-bottom: 4px solid #ccc;
}

.gamemode:hover {
    background: #ccc;
    cursor: pointer;
    border-bottom: 4px solid #0093dd;
}

.gamemode:selected {
    border-bottom: 4px solid #0093dd;
}

#gm-text {
    width: 25%;
    display: inline-block;
    vertical-align: middle;
}

#gm-image {
    width: 74.5%;
    height: 556px;
    background: url(images/survivalimg.png);
    background-repeat: no-repeat;
    background-position: 50% 50%;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    display: inline-block;
    vertical-align: middle;
    overflow: hidden;
}

figcaption { 
  position: absolute;
  background: rgba(0,0,0,0.8); 
  color: #FFF;
  margin-top: 415px;
  margin-left: -40px;
  width: 100%;
  padding: 0px 20px;
}

figcaption p {
    font-size: 1em;
    color: #FFF;
}

#captitle { 
    font-size: 1.4em;
    color: #FFF;
}

如果您查看CSS,您会注意到我对这两个项目的宽度设置为25%和74.5%,这并不是完全100%。如果我将一个设置为75%,它只会移动到一个新行。

HTML:

<div id="main">
    <div id="showcase">
        <div id="gm-text">
            <p class="gamemode" id="survival" onclick="changeImageSurvival();"><i class="fa fa-globe"></i> Survival</p>
            <p class="gamemode" id="creative" onclick="changeImageCreative();"><i class="fa fa-building"></i> Creative</p>
            <p class="gamemode" id="sg" onclick="changeImageSG();"><i class="fa fa-cutlery"></i> Survival Games</p>
            <p class="gamemode" id="factions" onclick="changeImageFactions();"><i class="fa fa-link"></i> Factions</p>
            <p class="gamemode" id="kitpvp" onclick="changeImageKitPvP();"><i class="fa fa-bullseye"></i> KitPvP</p>
            <p class="gamemode" id="ctf" onclick="changeImageCTF();"><i class="fa fa-flag"></i> Capture the Flag</p>
            <p class="gamemode" id="spleef" onclick="changeImageSpleef();"><i class="fa fa-spoon"></i> Spleef</p>
        </div>
        <div id="gm-image">
             <figure>
                <figcaption>
                    <p id="captitle">Section 1</p>
                    <p id="caption">Section one info.</p>
                </figcaption>
            </figure>
        </div>
    </div>
</div>

3 个答案:

答案 0 :(得分:1)

请见http://jsfiddle.net/T9GQ7/

#gm-text {
    width: 25%;
    display: inline-block;
    vertical-align: middle;
    clear: both;
    float:left;   /*here */
}
#gm-image {
    width: 75%;
    height: 556px;
    background: url(http://www.wallsave.com/wallpapers/1024x768/red-/22118/red-background-desktop-backgrounds-22118.jpg);
    background-repeat: no-repeat;
    background-position: 50% 50%;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    display: inline-block;
    vertical-align: middle;
    clear: both;
}

答案 1 :(得分:1)

这是一个恼人的内联块问题。解决它的一种方法是设置

font-size:0; 

在容器元素上。当然,您必须在包含文本的每个子元素上声明所需的字体大小。如果不这样做,font-size:0属性将隐藏任何文本。

更新了JsFiddle:

http://jsfiddle.net/7fG3E/

答案 2 :(得分:0)

你需要摆脱div之间的空间,因为它是内联块。 改变这个,

    <div id="gm-text">
   </div>
    <div id="gm-image">

<div id="gm-text">

</div><div id="gm-image">

或者

<div id="gm-text">

</div><!--
--><div id="gm-image">

这样你可以保持25%和75%的宽度。 对于相同的高度问题,请参阅相关问题。 How do I keep two divs that are side by side the same height?