CSS div 溢出问题

4
我正在尝试使用CSS创建一个简单的聊天室,其中包含消息和用户名。我的做法是将消息和用户名包装在<div>中。当消息超过<div>时,问题就出现了。它不会将包含其他消息的其他<div>推到下面。
谢谢你的帮助。
这里是jsiddle:

http://jsfiddle.net/gjuv8/

enter image description here enter image description here

CSS

 body { background-color: #535954}
 .box22 {  content: "";display: block;clear: both;background-color: #FFFFFF;width: 500px;height:400px;position: relative;left: 450px;top: 230px; }

 .user{font-size:18px;font-family:Arial;color: #3A3E42 ;font-weight: bold;float:right;position: relative;left: -20px;top: 0px;}
 .message{font-size:18px;font-family:Arial;color: #3A3E42 ;font-weight: bold;float:left;position: relative;left: 10px;top: 40px;}
 .wrapper{position: relative;left: 10px;top: 50px;background-color: #FFFFFF;width: 480px;height: 100px}

HTML

<link rel="stylesheet" href="css/float.css">
<div class="box22">

<div class="wrapper">
<span class="user">johnny123 </span>
<span class="message">message  message overflow message  message overflowmessage  message overflowmessage  message overflowmessage  message overflow</span>
</div>

<div class="wrapper">d
<span class="user">glasses glasses </span>
<span class="message">michael </span>
</div>
</div>

对于一个清晰明确的问题,点赞! - Nitesh
不用太仔细地查看您的代码,我认为您可以通过在包装类中简单使用“float:left”和“clear:left”来实现它。要将其内容稍微向右移动一点,您可以使用“padding-left:10px”。 - Sumurai8
如果你想显示完整的消息,为什么要在那里放置height: 100px?而且我认为你不需要在那里浮动元素。我认为你正在把一些简单的东西变得复杂。 - Ms. Nobody
4个回答

3

有很多需要改变才能使其正常工作

  body { background-color: #535954}
    .box22 {  content: "";display: block;clear: both;background-color: #FFFFFF;width: 500px;height:400px;position: relative;left: 450px;top: 230px; }

    .user{font-size:18px;font-family:Arial;color: #3A3E42 ;font-weight: bold;text-align:right}
    .message{font-size:18px;font-family:Arial;color: #3A3E42 ;font-weight: bold;}
    .wrapper{position:relative;background-color: #FFFFFF;width: 480px;}

请查看这里的演示

该演示与IT技术有关。

@JackRoster:欢迎,很高兴能提供帮助。 - Khanh TO

3

我可以尝试使用这个CSS吗:

body {
    background-color: #535954
}
.box22 {
    content: "";
    display: block;
    clear: both;
    background-color: #FFFFFF;
    width: 500px;
    height: 400px;
    position: relative;
    left: 450px;
    top: 230px;
}
.user {
    font-size: 18px;
    font-family: Arial;
    color: #3A3E42;
    font-weight: bold;
    float: right;
    position: relative;
    left: -20px;
    top: 0px;
}
.message {
    font-size: 18px;
    font-family: Arial;
    color: #3A3E42;
    font-weight: bold;
    float: left;
    position: absolute;
    left: 10px;
    top: 32px;
}
.wrapper {
    position: relative;
    left: 10px;
    top: 50px;
    background-color: #FFFFFF;
    width: 480px;
    height: 100px
    margin:5px 0;
}

HTML源代码:

<div class="box22">
  <div class="wrapper"> <span class="user">johnny123 </span> <span class="message">message  message overflow message  message overflowmessage  message overflowmessage  message overflowmessage  message overflow</span> </div>
  <div class="wrapper"> <span class="user">glasses glasses </span> <span class="message">michael </span> </div>
</div>

0

我认为这可能适用于您,无论如何都可以减少您的代码。对于消息和名称,您可以放置一个容器div。只需为您的容器div设置float:left; min-height:“一些所需高度” ; height:auto;,它将简单地使您的高度扩展。


0

你只是设置了太多的静态高度和宽度...我会像下面的代码一样做...如果符合你的需求,请告诉我,干杯

CSS:

 body {
        background-color: #535954
    }

    .box22 {
        position: relative;
        display: block;
        width: 50%;
        margin: 0 auto;
        background-color: #FFFFFF;
        position: relative;
    }

    .user {
        position: relative;
        font-size: 18px;
        font-family: Arial;
        color: #3A3E42;
        font-weight: bold;
        text-align: right;
        padding: 2%;
    }

    .message {
        position: relative;
        font-size: 18px;
        font-family: Arial;
        color: #3A3E42;
        font-weight: bold;
    }

    .wrapper {
        position: relative;
        background-color: #FFFFFF;
    }

HTML:

<div class="box22">
    <div class="wrapper">
        <div class="user">johnny123 </div>
        <div class="message">message
            message overflow message message overflowmessage message
            overflowmessage message overflowmessage message overflow
            <br />
            overflowmessage message overflowmessage message overflow
            <br />
            overflowmessage message overflowmessage message overflow
            <br />
            overflowmessage message overflowmessage message overflow
        </div>
    </div>

    <div class="wrapper">
        <div class="user">glasses glasses </div>
        <div class="message">
            michael
            <br />
            overflowmessage message overflowmessage message overflow
            <br />
            overflowmessage message overflowmessage message overflow
        </div>
    </div>
</div>

我刚刚尝试了你的解决方案,你需要指定一个 <br> 否则内容将会溢出 div,谢谢你的帮助 :) - JackRoster
哦,不,我只是加了<br/>来节省文本行数,试着删除它们并写大量的文本,你会看到相同的效果...干杯 - chinanzio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接