53

I have a text container with paragraphs and headings. At the bottom of the page I want to float an image to the right of the page, while the text wraps around the image. The bottom of the image should be flush with the bottom of the last paragraph.

The page width is variable (responsive), but the image dimensions are fixed. Is it possible to accomplish this in HTML and CSS (CSS3 is fine)? If not, can it be done with a minimal amount of Javascript?

Here's a schematic example of what I want to accomplish:

Floating image to the bottom right

The HTML currently looks something like this, but it can be changed if necessary. I don't particularly care where in the document the image is located. Using background images instead would be fine too.

<section>
  <h2>...</h2>
  <p>... ...</p>
  <p>... ...</p>
  ...
  <img src="...">
</section>

When I set float: right on the image, it floats to the right but I cannot get it to align to the bottom of the page. Suggestions?

Edit: the closest I got is this... :-)

molf
  • 73,644
  • 13
  • 135
  • 118
  • 4
    You can't set a bottom position on a float, and you can't wrap content around an absolutely-positioned element. You may need to use scripting for this. – isherwood Nov 04 '13 at 15:26
  • 1
    If it can't be done with HTML/CSS only I'm open to solutions that use Javascript. – molf Nov 04 '13 at 15:31
  • http://stackoverflow.com/questions/526035/html-css-positioning-float-bottom – isherwood Nov 04 '13 at 15:32
  • I don't think the linked question applies. I'm specifically looking for text that wraps around the image. I don't mind if any JS libraries used, I'll just use the relevant pieces. – molf Nov 04 '13 at 15:34
  • That image has fixed height or not defined? – Aleks Dorohovich Nov 04 '13 at 15:38
  • Yes, the image dimensions are fixed. – molf Nov 04 '13 at 15:40
  • I started writing something, but I'm out of time. This might help: http://jqueryfordesigners.com/fixed-floating-elements/ – isherwood Nov 04 '13 at 15:55
  • 6
    possible duplicate of [CSS: wrap text around a bottom-right div?](http://stackoverflow.com/questions/499829/css-wrap-text-around-a-bottom-right-div) – j08691 Nov 04 '13 at 16:25
  • Actually I know that problem, there are no solutions for CSS 2.1 at the moment. In case of CSS3, maybe with flexboxes only, but IE9 and earlier don't support them. Also you can push last paragraph to the left using :before and :last-of-type selectors, but it's still ugly, overlapping other paragraphs and not a solution at all http://jsfiddle.net/Z7u6t/ – Aleks Dorohovich Nov 04 '13 at 16:37
  • I'm open to CSS3-based solutions. Apparently this question has come up before (it's not possible with pure HTML/CSS2). Perhaps it is worth considering if there is a new or more conclusive answer these days. – molf Nov 04 '13 at 16:41
  • 2
    This question has been asked before, and there are no valid solutions presented. It's a serious failing of CSS that layout problems like this don't have solutions. +1 for this question – Peter Wooster Nov 07 '13 at 12:30
  • @isherwood - With CSS Exclusions you *can* float an absolutely positioned element - as I showed [here](http://stackoverflow.com/a/19895616/703717). True, only IE10+ supports this as yet, but it looks like this will be the future approach. – Danield Nov 12 '13 at 09:17
  • It would be possible to do this with CSS regions, but I think it's only available to Chrome's Canary browser right now. – ediblecode Nov 13 '13 at 10:17

11 Answers11

59

Create a spacer element with float: right and height equal to the height of the content minus the height of the image. Then use float: right and clear: right on the image:

<div class="spacer"></div>
<img class="bottomRight" src="" />
<div class="content"></div>
.spacer {
    height: calc(100% - 200px);
    width: 0px;
    float: right;
}
.bottomRight {
    height: 200px;
    float: right;
    clear: right;
}

http://cssdesk.com/bLNWs

My demo uses fixed dimensions in the container element. Since that is rarely a realistic case, it probably makes more sense to use JavaScript to size the spacer. Call this function, passing a reference to the spacer element when the document is ready and during the window.onresize event.

function sizeSpacer(spacer) {
    spacer.style.height = 0;
    var container = spacer.parentNode;
    var img = spacer.nextElementSibling || spacer.nextSibling;
    var lastContentNode = container.children[container.children.length - 1];
    var h = Math.max(0, container.clientHeight - img.clientHeight);
    spacer.style.height = h + "px";
    while (h > 0 && img.getBoundingClientRect().bottom > lastContentNode.getBoundingClientRect().bottom) {
        spacer.style.height = --h + "px";
    }
    if (lastContentNode.getBoundingClientRect().bottom > img.getBoundingClientRect().bottom) {
        spacer.style.height = ++h + "px";
    }
}

This function works (see the demo), and can be reworked for jQuery or your library of choice. It's not meant to be plug-in quality code, but serves to illustrate the concept.

jsfiddle.net/gilly3/xLr7eacp

Edit: I created a jQuery plugin version (github | jsFiddle demo) that supports floating bottom left or bottom right. It also supports specifying which element to align the bottom with.

By the way, I didn't bother trying to support IE7.

gilly3
  • 87,962
  • 25
  • 144
  • 176
  • 1
    nice fixed-width solution, but does not work with narrower nor wider width without computing magical constants :( – Aprillion Nov 06 '13 at 19:12
  • @KyleMit - Yes. That goes along with my point about fixed size elements rarely being a reality. A JavaScript solution to set the height of the spacer is required. – gilly3 Nov 06 '13 at 19:23
  • @gilly3 - even with a JavaScript solution, the best you're going to do is come within a certain approximation - you'll never get it dead on. This is because every time you move the position of the image, the text will wrap around the float differently, thus changing the height of the parent. – Adam Jenkins Nov 06 '13 at 19:33
  • 2
    @Adam - Challenge accepted. You contrive the scenario where my code produces unacceptable results and I'll adapt my function to accommodate it. As long as an acceptable result is *possible* (eg, in Photoshop), I can do it with JavaScript. Remember, the code I posted in my answer is not ready to be published as plugin code, but should get you close. – gilly3 Nov 06 '13 at 20:10
  • The fiddle works reasonably well, at least well enough for me to use it. A bit of margin on the top and left of the image cleans up the overlap. – Peter Wooster Nov 07 '13 at 12:46
  • @gilly3 I got this working on my applications, I needed to add a check for the image being taller than the content. At present that sends this code into a loop. I've edited the solution. – Peter Wooster Nov 07 '13 at 15:45
  • JS appears to be the best solution for now. Thanks! – molf Nov 13 '13 at 16:03
  • This solution requires that your text content is actually broken up into multiple lines using paragraph elements. If your text doesn't have paragraphs but is just several sentences inside a single div, you won't get the wrapping effect. The text will always appear to the left of the floating element and will never extend to the container's far right. – Johann Jul 24 '17 at 12:12
  • @AndroidDev - You are close. It requires that the content has a parent element that is a descendant of the container element. If your container contains only text and the element to be floated, you have two options. 1. The easy way is to wrap the text in a `` or any other element. 2. You can tweak the code to work with text nodes: Get the text node using `container.childNodes` (instead of `container.children`) and use a `Range` object to get the bounding client rect for the `textNode`. Works here: http://jsfiddle.net/n5RPV/120/ – gilly3 Jul 24 '17 at 21:54
  • I took your example that you just posted and modified the font size. As you resize the width, you'll notice that the top line overlaps on top of the floating image.: http://jsfiddle.net/Deepview/5prgy4La/ – Johann Jul 25 '17 at 14:30
  • That's an unfortunate bug. It seems to be present in Chrome only. I can't reproduce it in FireFox, Edge, or Internet Explorer. Is this a common case for you? Do you frequently want to float an element to the bottom right of some content that is taller than the floating element by less than the height of one line of text? If so, you could add in some logic to check the height of of the content and if it is not more than one line of text taller than the floating element, collapse the spacer to `height: 0px`. Like this: http://jsfiddle.net/5prgy4La/2/ – gilly3 Jul 25 '17 at 20:23
  • The examples work great and it's a quite smart and short solution. Nevertheless if the outer container is smaller than the most lengthy word + image-width (and any margin or padding) then the text starting with that most lengthy word is wrapped onto the image in the bottom. – David Jul 27 '20 at 03:04
  • Missed the last example where it seems being fixed, but there the image is not always aligning at the bottom but perhaps a bit higher (depending on the outer container-width or display-size) – David Jul 27 '20 at 03:08
  • 1
    @David, When you don't have enough width to fit the content and the floated element side by side, I think the best compromise is to float the element below the content. You can accomplish that by increasing the spacer height by 1 pixel when the floated element ends up above the bottom of the content. See here: http://jsfiddle.net/gilly3/xLr7eacp/. – gilly3 Jul 28 '20 at 23:59
  • Thank's a lot @gilly3 your new code `if (lastContentNode.getBoundingClientRect().bottom > img.getBoundingClientRect().bottom) { spacer.style.height = ++h + "px"; }` has a little fault, when I change `if` to `while` then its working very well also with my own needs. I just have an example where the text is rendering very bad then, I never found out yet why. Placing the text in your example renders also fine. – David Jul 29 '20 at 05:43
  • btw. what for is `zw` an abbreviation in `zwNode` and `zwRange`? – David Jul 29 '20 at 06:11
  • 1
    @David `zw` is for "Zero Width". `"\u200b"` is code point [U+200B](http://www.fileformat.info/info/unicode/char/200b/index.htm), a "Zero Width Space". I create those elements to measure the position of the last character in the line. By adding a non-empty text node, I can measure its size (height) and position. Using a Zero Width Space, I don't change the layout. – gilly3 Jul 29 '20 at 17:10
7

I think the future way how to tackle this problem will be with CSS Exclusions.

CSS Exclusions extend the notion of content wrapping previously limited to floats. ... Elements layout their inline content in their content area and wrap around the exclusion areas in their associated wrapping context (--excerpts from the spec)

This msdn article also explains exclusions

...web authors can now wrap text so that it completely surrounds elements, thereby avoiding the traditional limitations of floats. Instead of limiting elements to floating either to the left or right relative to their position in the document flow, CSS Exclusions can be positioned at a specified distance from the top, bottom, left, or right sides of a containing block, while remaining part of the document flow.

Ironically, to date this only works in IE10 (look for wrap-flow:both here)

Check out this fiddle in IE10+

This is what the code looks like:

 <div class="container">
    <div class="exclusion">
        Exclusion positioned at bottom right hand side of text.
    </div>
    <div class="dummy_text">
        <p>text here</p>
    </div>
</div> 

CSS

.container {
    font-size: small;
    background: aqua;
    position: relative;
}

.exclusion {

    -ms-wrap-flow: both;
    -ms-wrap-margin: 10px;
    z-index: 1;
    position:absolute;
    right:0;
    bottom:0; /* try fiddling with this. For some reason bottom: -10px (or the like) works better here */
    width: 150px;
    height: 100px;
    background: url(http://placehold.it/150x100) no-repeat;
}

So as you can see - even though the exclusion is positioned absolutely - it still acts like a float - in this case: float bottom right.

Regarding browser support:

Check out this site which shows which properties are supported by the browsers (to date: only IE10+ supports wrap-flow:both )

PS: Latest updates concerning CSS exclusions (and other simlar modules like CSS regions and CSS Shapes) can be found at the Adobe Web Platform Team Blog

Danield
  • 121,619
  • 37
  • 226
  • 255
  • This is the way forward. Unfortunately this appears to be an IE only solution for now. Let's hope other browsers will soon support CSS exclusions by default! – molf Nov 13 '13 at 16:00
  • This is promising, but Microsoft's implementation in IE10 seems buggy. – gilly3 Nov 13 '13 at 19:13
3

Possible CSS Solution: (only tested in chrome)

It looks like this might work using CSS3's flex box properties and a combination of background-image properties. I was able to get it pretty close using only CSS. (It works but needs a little tweaking) Also, this may not be ideal cause I did have to change the markup a little bit to make this work. But its probably worth a shot if you are looking for a pure CSS solution.

Here is a Demo -> http://jsfiddle.net/ADSH2/

New Markup: (not to much different)

<section >
  <h2>Some Heading:</h2>
  <p>...</p>
  <p class="last">
     <span class="image"></span>
  </p>
</section>

CSS:

.last {
    display:inline-flex;
    flex-direction:row;
}
.image {
    padding:5px 0 0 5px;
    width:100%;
    background-image:url("http://dribbble.s3.amazonaws.com/users/200359/screenshots/758731/stackoverflow_logo.png");
    background-size:100%;
    background-repeat:no-repeat;
    background-position:bottom right;
}

Resources:

  1. http://css-tricks.com/snippets/css/a-guide-to-flexbox/
  2. http://dev.w3.org/csswg/css-flexbox-1/
khollenbeck
  • 16,028
  • 18
  • 66
  • 101
  • One problem with flex box is that it is hard to get the paragraph to flow over into the empty vertical space. I am currently looking to see if there is a way around this. – khollenbeck Nov 06 '13 at 20:35
  • Also there are still too many browsers that don't support flexbox. – Peter Wooster Nov 07 '13 at 12:36
  • 1
    The only problem with this solution is that the image can't cause the text of more than just the last paragraph to reflow. Within those constraints it appears to work reasonably well though. – molf Nov 13 '13 at 15:59
  • Yeah I tried to see if there was a way to work around it. But unfortunately from everything I had tried it didn't seem possible. – khollenbeck Nov 13 '13 at 16:05
  • Never got this solution running for a left-floating image, then the text is just ending above the image. – David Jul 27 '20 at 07:34
3

A CSS only and responsive solution that works without complex code. Resize the browser and see the magic in play:

.wrapper {
  display: flex;
  border: 1px solid;
}

.box {
  text-align: justify;
  font-size: 20px;
}

.float {
  float: right;
  height: 100%;
  margin-left: 15px;
  display: flex;
  align-items: flex-end;
  shape-outside: inset(calc(100% - 100px) 0 0);
}
<div class="wrapper">
  <div class="box">
    <div class="float"><img src="https://picsum.photos/id/1/100/100"></div>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam in dui quis orci ultricies aliquet nec sed enim. Mauris id rutrum nulla, et ornare leo. Donec aliquet malesuada tellus, eu laoreet lectus tincidunt ut. Quisque lacus magna, interdum eu urna
    ac, aliquet gravida orci. Pellentesque gravida urna sit amet nulla suscipit, at venenatis lorem dignissim. Morbi quis nunc eu velit condimentum ornare. Curabitur finibus tincidunt ullamcorper. Pellentesque tincidunt et odio vitae tempus. Praesent
    ac erat ut eros venenatis pulvinar. Pellentesque eu dapibus dui. Ut semper sed enim ut vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vitae elit eget velit porttitor consequat nec sed turpis. Proin libero nisl, egestas
    hendrerit vulputate et, lobortis non nulla. Aenean dui libero, dictum vel nibh eget, tristique egestas enim.
  </div>
</div>

More details: https://css-tricks.com/float-an-element-to-the-bottom-corner/

PS: I am the author of the above article

Temani Afif
  • 245,468
  • 26
  • 309
  • 415
  • Love this - but found a weird bug. If you apply padding to `.box`, at certain sizes you get weird overflow. Also happens if you add the padding to an inner container too. Got me puzzled. https://codepen.io/iamkeir/pen/qBJyjLp – iamkeir May 14 '23 at 20:41
  • Actually, you don't even need to add padding for it to happen a certain widths. I had similar issue with my solution below: https://stackoverflow.com/a/65206107/923785 – iamkeir May 14 '23 at 20:52
2

I have worked on a jQuery-based solution — probably not as elegant as the one posted by gilly3 though ;) and it's also slower and a bit bloated...

My trick is to append two <div>s to the section, which is floated to the left and hidden width a width of 0. One of the div, a designated ghost element that will have the same dimension as the image, will be positioned below another div that is the designated height spacer. The script uses a while loop to establish if the ghost element has reached the bottom of the parent section element. If this has not happened, it will increment the height of the height spacer by 1, until the condition is satisfied.

The markup I have used is as follow. I'm using the HTML5 attribute data-bottom-image to identify sections that you have the image to be floated to the bottom. Of course it is dispensable, depending on how you want to select for the correct section element.

<section id="c1" data-bottom-image>
    <h2>...</h2>
    <p>...</p>
    <img src="http://placehold.it/250x100" />
</section>

And the jQuery script:

$(function () {
    $("section > img:last-child").each(function () {
        // Offset image based on the bottom and right padding of parent
        var $par = $(this).parent();
        $(this).css({
            bottom: $par.css('padding-bottom'),
            right: $par.css('padding-right')
        });
    });

    // Function: adjust height of height-spacer, pixel by pixel
    function adjustHeightSpacer($par, $hs, $is) {
        // Stretch height spacer
        $hs.height(0);
        $hs.css({
            height: $par.find("img").position().top - parseInt($par.css('padding-top'))
        });

        // Adjust height spacer
        while($par.height() - $is.height() > $is.position().top - parseInt($par.css('padding-top'))) {
            $hs.height("+=1");
        }

        while($par.height() - $is.height() < $is.position().top - parseInt($par.css('padding-top'))) {
            $hs.height("-=1");
        }        
    };

    $("section[data-bottom-image]").each(function() {
        // Append two spacers:
        $(this).prepend('<div class="ghost height-spacer" /><div class="ghost image-spacer" />')

        var $hs = $(this).find(".height-spacer"),
            $is = $(this).find(".image-spacer");

        // Adjust image spacer dimension
        $is.css({
            height: $(this).find("img").height(),
            width: $(this).find("img").width()
        });

        // Adjust height spacer
        adjustHeightSpacer($(this), $hs, $is);
    });

    $(window).resize($.debounce(250,function() {
        $("section[data-bottom-image]").each(function() {
            // Adjust height spacer
            adjustHeightSpacer($(this), $(this).find(".height-spacer"), $(this).find(".image-spacer"));
        });
    }));
});

And here is the working Fiddle: http://jsfiddle.net/teddyrised/xmkAP/5/

Terry
  • 63,248
  • 15
  • 96
  • 118
2

I guess it's solved. It works!

With a little bit of JavaScript and CSS I did it like this:

http://jsfiddle.net/stichoza/aSScx/

One simple floatify() function.

  • Responsive.
  • Window resizing won't break it.
  • Any image width/height.
  • Put as many text you want.

Idea inspired by: http://www.csstextwrap.com/

Stichoza
  • 4,491
  • 2
  • 23
  • 24
  • 1
    Nice one, you should post the jQuery and stuff here 1+ – Josh Crozier Nov 13 '13 at 01:12
  • Looks good in the major browsers, but there is some extra space above the image on FF 25. – chue x Nov 13 '13 at 03:14
  • FYI--When I adjust the window size, the image does not remain at a constant parallel to the bottom of the text as the OP wanted. – ScottS Nov 13 '13 at 04:46
  • That only works because the last paragraph is large. If the last paragraph is short, it does not look nice: [screenshot](http://i.stack.imgur.com/82MsM.png) – gilly3 Nov 13 '13 at 08:13
  • @gilly3 I've **updated** the code so now it works for short paragraphs too :> – Stichoza Nov 13 '13 at 13:32
1

CSS only Solution.

Using media queries one can accomplish this layout.

HTML

<section>
  <h2>...</h2>
  <p>... ...</p>
  <p>... ...</p>
  <img src="..." class="show-medium">
  ...
  <img src="..." class="show-small">
</section>

CSS

html, body {
  height: 100%;
  width: 100%;
}

img {
  display: none;
  float: right;
  clear: right;
}

@media (max-width: Xpx), (max-height: Xpx) {
  /* show img for small screens */
  .show-small { display:block; }
}
@media (min-width: Xpx) and (max-width: Xpx) and (min-height:Xpx) and (max-height: Xpx) { 
 /* show img for medium screens */
 .show-medium { display:block; }
}

@media (min-width: Xpx) and (min-height: Xpx) {
  /* show img as body background for large screens */
  body {
    background: url("http://placehold.it/200x300") no-repeat fixed right bottom transparent;
  }
}

It plays well at different screen resolutions. See demo.

One has to play/adjust the CSS media queries as well as the position of the images within the markup in order to make it work.

CSS media queries is supported in Firefox 3.5+, Opera 7+, Safari 3+, Chrome and IE9+. For older IE versions one can use this fix: http://code.google.com/p/css3-mediaqueries-js/

Oriol
  • 11,660
  • 5
  • 35
  • 37
  • I have a similar media query solution right now, and although it sort of works it is also very very brittle and maintenance intensive. – molf Nov 13 '13 at 16:02
  • I know, not the ideal solution but can be worth it for static pages. – Oriol Nov 22 '13 at 00:53
1

A responsive solution for 2020, inspired by @gilly3's solution, and until CSS Exclusions arrive.

  1. Flexbox on containing element to avoid needing fixed-height container whilst still ensuring 100% height works
  2. :before element instead of spacer div
  3. Viewport unit instead of fixed value to size image (and 'spacer') proportionately
  4. To max-width image on wider screens, introduce breakpoint with fixed width to both image and spacer
  5. Subtract any vertical margin needed within calc()

.container {
  display: flex;
}

img {
  float: right;
  clear: right;
  margin: 20px 0 0 20px;
  height: 30vw;
  
  @media (min-width: 1200px) {
    height: 400px;
  }
}

.container-inner:before {
  content: "";  
  float: right;
  height: calc(100% - 30vw - 20px);
  
  @media (min-width: 1200px) {
    height: calc(100% - 400px - 20px);
  }
}
<div class="container">
  <div class="container-inner">
    <img src="https://picsum.photos/200" />
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Doloribus ab, doloremque quasi, obcaecati aspernatur nam possimus harum architecto odit molestiae pariatur aliquid necessitatibus, corrupti mollitia provident quis quam eligendi qui.</p>
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Doloribus ab, doloremque quasi, obcaecati aspernatur nam possimus harum architecto odit molestiae pariatur aliquid necessitatibus, corrupti mollitia provident quis quam eligendi qui.</p>
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Doloribus ab, doloremque quasi, obcaecati aspernatur nam possimus harum architecto odit molestiae pariatur aliquid necessitatibus, corrupti mollitia provident quis quam eligendi qui.</p>
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Doloribus ab, doloremque quasi, obcaecati aspernatur nam possimus harum architecto odit molestiae pariatur aliquid necessitatibus, corrupti mollitia provident quis quam eligendi qui.</p>
  </div>
</div>
iamkeir
  • 3,222
  • 2
  • 21
  • 22
0

use this :

<section class="post">
  <h2>...</h2>
  <p>... ...</p>
  <p>... ...</p>
  ...
  <img src="...">
</section>

<style>
.post img {float:right;margin-top:80%}

</style>

change 80% to get best result.

Good Luck.

0

Here's a lightweight solution with a bit of jQuery:

http://jsfiddle.net/isherwood/6BvC2/

<section class="flagpole">
    <div class="pole"></div>
    <img class="flag" src="..." />
    <p>Paragraphs...</p>
</section>

.pole, .flag {
    float: right;
    clear: right;
}
.pole {
    width: 0.1px
}


function setFlag() {
    $('section.flagpole').each(function () {
        var poleHeight = $(this).height() - $(this).find('.flag').height();
        $(this).find('.pole').height(poleHeight);
    });
}

setFlag();

$(window).on('resize', function () {
    setFlag();
});

To dispel any concerns about plagiarism, this solution is based on another similar answer I provided a while back.

Community
  • 1
  • 1
isherwood
  • 58,414
  • 16
  • 114
  • 157
0

Not quite there yet - but you might get where I'm going. Maybe someone else will complete this (if possible).

div.wrapper {
  width: 300px;
  transform: rotate(-90deg);
  writing-mode: vertical-lr;
}

p.text {
  margin-top: 1em;
  writing-mode: vertical-lr;
}

img {
  float: right;
  transform: rotate(90deg);
  height: 100px;
  width: 100px;
}
<div class="wrapper">
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAyCAYAAACqNX6+AAAAAXNSR0IArs4c6QAABCZJREFUeF7t3D9I80AUAPBXcFBwEQcRwcGl4KhLQTvXWQQHdRasWDroIEitxVVBRFCc/DO4ddRZhU5CwcWldCiVDiqFgkUEP9593HE5kjZNk/vTJouNudxd3u/eXYI2kWKx+AcAMDw8DENDQ/gx3CRH4Pv7GxqNBmk1Uq1W/wYHB6FWq5FfjI2NwcjIiOQu9WdzX19flrg3m83/IOPj4yQiYoEQJpiB4hTn9/d3KwhtPoSRC0FbcwQJYfwFcTvA24KEMN3BuIVwnSFidzptoLvLMfdsr3FynSEhjLvB4RXCc4aEMPYw3UL4BtLva4xfEL6D9BuM3xCBgfQ6TFAQgYP0GkzQENJATIeRBSEdxDQY2RDKQHSHUQWhHEQ3GNUQ2oCohtEFQjsQ2TC6QWgLEjSMrhDag/gNozuEMSDdwpgCYRxIpzCmQRgL0g7GVAjjQUSY399f8quBgQGj/43J818MaUBU/6QZEYIolnCamsIpSzKM24C7LSe5+22bM2bK8hpgr+e1jVxABbQH8SugftUTkAOrVluQoAIYVL1+QWkHIitgstrpFEobEFUBUtWuE5RyEF0Coks/lIHoEgBxpKrul3QQ1Rfsdk5X1U9pIKou0C2AUznZ/Q4cRPYFdQugGiYwEB0h8Juu6XQa1tbWYG5ujsX+9vYWVldXyf7NzQ2srKywY29vb7C8vAzFYhHW19chk8lAvV4nx52+HEvbOT8/Z/UcHBzA3t4e2RfrPD4+Zt9+9h1ERwgMAh+kp6cnBoLB2dragpOTExIs+jkajbJz4vE4LC4uEkz8jGCtrvPj4wM2Nzdhf38fsB5+o/2wqxPL+QaiKwQ/ImOxGJTLZTJSaYZgdjw+PgIdpblcDqampkjQeSwM7PPzM1xfX7OyWLfddeN5iHF6egqjo6MWkHZ1dg2iMwSNRKVSIR/xpQgYaB4EAXCj0wm/jwC4j2gYWH7/7OyM7NNj9/f3JIOOjo4gEolAPp+3wNG+tKoT2/AMYgKEuEDjVGIHQjMCy2OAS6USARIzQhz5FG9jY4PVOz09DZeXl7Czs8OaTyQSFlQ+y8Q6OwYxEYJGxm8QWt/DwwPwizZCIWoqlQJ8Q8bV1RV8fn6SjHl5ebFMe55BTIZoB+JlyqJrA2YUjng6dYlZiXErFApweHhIQH5+fhynQVdTVi9AtALhpygsJy7q/OJsN4XhXRlu8/PzbB0SUTALdnd3YXt7m9wE4JR2cXHB1iV+CuurV2vYTVleb3v529eFhQW2hszMzFhuj2m5iYkJAoYBx8V/dnaWPPtks1l2K21729tLGeFmUacLudsHQ5x2cMOg4kZvlzF7kskk3N3dweTkJDlOHwzxgZJ/+MNBsLS0BK+vr+ShE4/Rl/+wDAlfzyTyydkXE4C8nil8gZmc4LdqhX+B2T8GuESS5P5SHQAAAABJRU5ErkJggg==" />
  <p class="text">
  Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
  </p>
</div>
SirPilan
  • 4,649
  • 2
  • 13
  • 26