Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Move div to new line

Tags:

html

css

I'm pretty new to CSS and it is still magic for me.
I want to have my div movie_item_content_plot on a new line. Currently I use <br> in HTML and this works fine. When I replace the <br> with clear: both; the div appears between movie_item_poster and movie_item_toolbar - but this is not what I want to have. It should be in movie_item_content but under movie_item_year and movie_item_plot.

Here is a fiddle to play around with.

wanted layout (<br>)

wanted layout

wrong layout (clear: both;)

wrong layout

HTML

<div id="movie_item">
    <div class="movie_item_poster">
        <img src="..." style="max-width: 100%; max-height: 100%;">
    </div>

     <div id="movie_item_content">
        <div class="movie_item_content_title">title</div>
        <div class="movie_item_content_year">year</div>
        <br> <!-- I want to replace this br -->
        <div class="movie_item_content_plot">plot</div>
    </div>

    <div class="movie_item_toolbar">
        Lorem Ipsum...
    </div>
</div>

CSS

#movie_item {
    display: block;
    margin-top: 10px;
    height: 175px;
}

.movie_item_poster {
    float: left;
    height: 150px;
    width: 100px;
}

.movie_item_content {
    float: right;
}

.movie_item_content_title {
    float: left;
}

.movie_item_content_year {
    float: right;
}

.movie_item_content_plot {

}

.movie_item_toolbar {
    clear: both;
    vertical-align: bottom;
    width: 100%;
    height: 25px;
}
like image 604
Lucas Avatar asked Mar 18 '14 20:03

Lucas


People also ask

How do I move a div to a new line?

I've found that you can move div elements to the next line simply by setting the property Display: block; On each div.

Does div create a new line?

A div does not have a newline; rather, it is a block element. If you want, you can use display: inline to make the div inline, which may be what you want. This is why you should only use a span when necessary. It is a block element that prevents it from displaying HTML elements unless its default behavior changes.

How do you move to the next line in an element?

To do a line break in HTML, use the <br> tag. Simply place the tag wherever you want to force a line break. Since an HTML line break is an empty element, there's no closing tag.


2 Answers

What about something like this.

<div id="movie_item">
    <div class="movie_item_poster">
        <img src="..." style="max-width: 100%; max-height: 100%;">
    </div>

     <div id="movie_item_content">
        <div class="movie_item_content_year">year</div>
        <div class="movie_item_content_title">title</div>
        <div class="movie_item_content_plot">plot</div>
    </div>

    <div class="movie_item_toolbar">
        Lorem Ipsum...
    </div>
</div>

You don't have to float both movie_item_poster AND movie_item_content. Just float one of them...

#movie_item {
    position: relative;
    margin-top: 10px;
    height: 175px;
}

.movie_item_poster {
    float: left;
    height: 150px;
    width: 100px;
}

.movie_item_content {
    position: relative;
}

.movie_item_content_title {
}

.movie_item_content_year {
    float: right;
}

.movie_item_content_plot {
}

.movie_item_toolbar {
    clear: both;
    vertical-align: bottom;
    width: 100%;
    height: 25px;
}

Here it is as a JSFiddle.

like image 57
god_is_love Avatar answered Oct 01 '22 21:10

god_is_love


Try this

#movie_item {
        display: block;
        margin-top: 10px;
        height: 175px;
    }
    
    .movie_item_poster {
        float: left;
        height: 150px;
        width: 100px;
        background: red;
    }
    
    #movie_item_content {
        float: left;
        background: gold;
    }
    
    .movie_item_content_title {
        display: block;
    }
    
    .movie_item_content_year {
        float: right;
    }
    
    .movie_item_content_plot {
        display: block;
    
    }
    
    .movie_item_toolbar {
        clear: both;
        vertical-align: bottom;
        width: 100%;
        height: 25px;
    }
    <div id="movie_item">
        <div class="movie_item_poster">
            <img src="..." style="max-width: 100%; max-height: 100%;">
        </div>
    
         <div id="movie_item_content">
                <div class="movie_item_content_year">(1890-)</div>
            <div class="movie_item_content_title">title my film is a long word</div>
            <div class="movie_item_content_plot">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officia, ratione, aliquam, earum, quibusdam libero rerum iusto exercitationem reiciendis illo corporis nulla ducimus suscipit nisi dolore explicabo. Accusantium porro reprehenderit ad!</div>
        </div>
    
        <div class="movie_item_toolbar">
            Lorem Ipsum...
        </div>
    </div>
like image 21
michel Avatar answered Oct 01 '22 22:10

michel