2016-02-14 3 views
0

enter image description hereИсправить изображения/кнопки до краев divs?

Я пытаюсь добиться того, что отображается на изображении, и с очень трудным временем пытаться получить их. Какой был бы лучший подход для достижения этого с помощью HTML/CSS, сохраняя при этом его отзывчивость, если это вообще возможно?

<div class="tool-div"> 
    <img src="{{ obj.image.url }}"> 
    <div> 
     <li>It Does this and that and that</li> 
     <li>It Does this and that and that and that</li> 
     <li>It Does this and that and that and that</li> 
     <li>It Does this and that and that and that</li> 
    </div> 
    <button class="btn btn-primary center-block">{{ obj.title }}</button> 
</div> 



.tool-div { 
    max-width: 50%; 
    margin: 20px; 
    height: 100px; 
} 


.tool-div img { 
    border-radius: 50%; 
    height: 100%; 
    position: absolute; 
    left: 20; 
} 
+0

У вас есть какой-либо код, который вы начали с? Не все, просто соответствующие бит. – magreenberg

+0

Я добавлю это, но я не думал, что это может быть полезно, потому что ничего, что я пробовал, даже приблизилось к работе. – Groovietunes

+0

'.tool-div' должен иметь позицию, например' position: relative'. первый родительский элемент с явным позиционированием будет использоваться в качестве ориентировочной точки для элемента с абсолютной позицией – luxer

ответ

2

Я думаю, что лучший подход был бы использовать absolute/relative позиционирования для перемещения элементов вокруг. Вот пример

div{ 
 
    width: 50%; 
 
    height: 200px; 
 
    border: 2px solid #333 
 
    box-sizing: border-box; 
 
    margin: 0 auto; 
 
    background: green; 
 
    position: relative; /*set position relative*/ 
 
} 
 
div span.circle{ 
 
    height: 100%; 
 
    display:block; 
 
    width: 200px; 
 
    border-radius: 50%; 
 
    background: red; 
 
    left: -100px; top: 0; /*move left half the width of the element*/ 
 
    position: absolute; /*set position absolute*/ 
 
} 
 
div span.square { 
 
    height: 75px; 
 
    width: 150px; 
 
    background: blue; 
 
    position:absolute; 
 
    /* quick vertical align */ 
 
    top: 50%; 
 
    transform: translateY(-50%); 
 
    right: -75px; 
 
} 
 
div ul{ 
 
    width: 100px; 
 
    margin: auto; 
 
    display:block; 
 
    position: relative; 
 
    top: 50%; 
 
    transform: translateY(-50%); 
 
}
<div> 
 
<span class="circle"></span> 
 
<ul> 
 
    <li>stuff</li> 
 
    <li>stuff</li> 
 
</ul> 
 
<span class="square"></span> 
 
</div>

+0

Спасибо, человек, ваше решение было немного ближе, чем когда-либо, с моими часами игры с ним. Я понял, что использование фиксированных значений пикселей является возможным решением, а затем просто использует медиа-запросы для внесения корректировок для разных размеров экрана. В большинстве моих тестов я пытался избежать использования фиксированных значений пикселей, поэтому все будет автоматически настраиваться. Вы знаете, возможен ли такой же эффект, используя проценты для ширины и высоты div, изображения, кнопки и списка? – Groovietunes

+0

@Groovietunes заглядывает в атрибут 'calc()' css. Это может помочь. – magreenberg

Смежные вопросы