Гуру CSS помогите обрезать картинку

HL
На сайте с 12.12.2012
Offline
118
#11

Неа (((

Появляется непонятный отступ снизу и картинка все равно не помещается.

.crp_related {

clear: both;
margin: 10px 0;
}
.crp_related h3 {
margin: 0 !important;
}
.crp_related ul {
list-style: none;
float: left;
margin: 0 !important;
padding: 0 !important;
}
.crp_related li, .crp_related a {
float: left;
overflow: hidden;
position: relative;
text-align: center;
}
.crp_related li {
margin: 5px !important;
border: 1px solid #ddd;
padding: 6px;
width: 180px;
height: 125px;
}

.crp_related li:hover {
background: #eee;
border-color: #bbb;
}
.crp_related a {
box-shadow: none !important;
text-decoration: none !important;
height: 100px;
}
.crp_related a:hover {
text-decoration: none;
}
.crp_related .crp_title {
color: #fff !important;
position: absolute;
bottom: 0;
padding: 3px;
color: #fff;
font-size: .9em;
text-shadow: 1000 .1em .1em .2em;
background: rgb(0.5, 0.5, 0.5);
background: rgba(0, 0, 0, 0.5);
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border-radius: 7px;
}
.crp_related li:hover .crp_title {
background: rgb(0.2, 0.2, 0.2);
background: rgba(0, 0, 0, 0.8);
}
.crp_related li {
vertical-align: bottom;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.4);
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.4);
box-shadow: 0 1px 2px rgba(0,0,0,.4);
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border-radius: 7px;
}
.crp_clear {
clear: both;
}
.crp_title:visited {
color: #fff !important;
}

Как только не пытался впихнуть этот триклятый object-fit: cover; - не хочет работать :(

- Дорогой выкуп баннерных показов (https://goo.gl/Haxr87). Советую! - СеоПульт (https://seopult.ru/ref/0c1642776e7e1b04) + крауд-ссылки (https://goo.gl/3eXcqn) = успех - Проверенный CashBack сервис (https://goo.gl/mAIbxw). До 30%
S
На сайте с 30.09.2016
Offline
469
#12
HotLab:
картинка все равно не помещается.

Вы сами просили обрезать картинку - см. название темы.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
HL
На сайте с 12.12.2012
Offline
118
#13

Sitealert, да, но не так координально же ))) Тем более, что при таком "обрезании" не умещается полностью заголовок поста. Если обратите внимание, в предыдущих скринах он занимал 2 строчки, а в нынешнем одну.

Дублирую, то, что мне необходимо было:

В голове родилась мысль подгонялось по высоте под 125px, а ширину пропорционально. Если ширина на выходе больше 180px, то часть картинки обрезается (скрывается). Ширина блока должна быть строго 180px.

Но с другой стороны, если первое изображение поста вертикальное, что подогнав его по высоте в 125px мы получим большие отступы по краям. Что так же не презентабельно будет смотреться.

Прошу помощи в окультуривании всего этого хозяйства, чтобы картинка помещалась в размеры 180х125, а все, что не поместилось - обрезалось стилями.
S
На сайте с 30.09.2016
Offline
469
#14

Я боюсь, у нас сейчас получится компот из стилей, в результате чего всё окончательно запутается.

Хоть какая-то система с размерами и ориентацией картинок есть? Подогнать картинки по высоте, чтобы у вертикальных картинок были боковые поля?

HL
На сайте с 12.12.2012
Offline
118
#15

Sitealert, есть такое. Поэтому я и выклыдаваю промежуточные этапу, чтобы потом можно было понять хронологию событий, с чего начинали и что получили. По большому счету, сейчас осталось прикрутить object-fit: cover; и понять, почему заголовок не переносится. Это увы выше моих способностей 🤣

Sitealert:
Хоть какая-то система с размерами и ориентацией картинок есть? Подогнать картинки по высоте, чтобы у вертикальных картинок были боковые поля?

Не, надо заполнить всю область, кок вот тут на примере с фоткой белок

S
На сайте с 30.09.2016
Offline
469
#16
HotLab:
сейчас осталось прикрутить object-fit: cover;

Это пока не кроссбраузерно. Прошу прощения, на сегодня у меня работоспособность закончилась.:o

totamon
На сайте с 12.05.2007
Offline
437
#17

вроде без js не получится ваша задача... нужно вычислять, что больше ширина или высота, и меньшей стороне присваивать или ширину 100% или высоту 100%

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
tommy-gung
На сайте с 22.11.2006
Offline
287
#18

проще было ссылку на страницу дать, чем тут заниматься догадками

Здесь не могла быть ваша реклама
HL
На сайте с 12.12.2012
Offline
118
#19
Sitealert:
Прошу прощения, на сегодня у меня работоспособность закончилась.:o

Ничего страшного ;) Большое спасибо за помощь в решении проблемы.

totamon:
вроде без js не получится ваша задача... нужно вычислять, что больше ширина или высота, и меньшей стороне присваивать или ширину 100% или высоту 100%

Очень надеюсь, что без скриптов получиться все реализовать :o

tommy-gung:
проще было ссылку на страницу дать, чем тут заниматься догадками

Не особо хотел палить пациента, ну если так проще, то проверяю на этом посте.

Сейчас включены настройки размеров в админке

HTML width and height attributes. e.g. width="180" height="124"
S
На сайте с 30.09.2016
Offline
469
#20

Ну вот через javascript я что-то накидал. Только тогда надо хотя бы для ul присвоить id (у меня сделано ul id='ul1'

<style>

.crp_related {
clear: both;
margin: 10px 0;
}
.crp_related h3 {
margin: 0 !important;
}
.crp_related ul {
list-style: none;
float: left;
margin: 0 !important;
padding: 0 !important;
}
.crp_related li, .crp_related a {
float: left;
overflow: hidden;
position: relative;
text-align: center;
}
.crp_related li {
margin: 5px !important;
border: 1px solid #ddd;
padding: 6px;
}
.crp_related li:hover {
background: #eee;
border-color: #bbb;
}
.crp_related a {
box-shadow: none !important;
text-decoration: none !important;
height: 125px;
width: 180px;
}
.crp_related a:hover {
text-decoration: none;
}
.crp_related img {
position: absolute;
top: 0;
left: 0;
}
.crp_related .crp_title {
color: #fff !important;
position: absolute;
bottom: 0;
left: 0;
padding: 3px;
color: #fff;
font-size: .9em;
text-shadow: 1000 .1em .1em .2em;
background: rgb(0.5, 0.5, 0.5);
background: rgba(0, 0, 0, 0.5);
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border-radius: 7px;
}
.crp_related li:hover .crp_title {
background: rgb(0.2, 0.2, 0.2);
background: rgba(0, 0, 0, 0.8);
}
.crp_related li {
vertical-align: bottom;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.4);
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.4);
box-shadow: 0 1px 2px rgba(0,0,0,.4);
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border-radius: 7px;
}
.crp_clear {
clear: both;
}
.crp_title:visited {
color: #fff !important;
}
</style>


<div class="crp_related ">
<h4>Похожие записи:</h4>
<ul id='ul1'>
<li><a href="http://www.site.ru/post-1/" rel="nofollow" target="_blank"><img src="http://www.site.ru/img/1.jpg" alt="Заголовок 1" title="Заголовок 1"class="crp_thumb crp_correctfirst" id='img1'><div class="crp_title">Заголовок 1</div></a></li>
<li><a href="http://www.site.ru/post-2/" rel="nofollow" target="_blank"><img src="http://www.site.ru/img/2.jpg" alt="Заголовок 2" title="Заголовок 2"class="crp_thumb crp_correctfirst"><div class="crp_title">Заголовок 2</div></a></li>
<li><a href="http://www.site.ru/post-3/" rel="nofollow" target="_blank"><img src="http://www.site.ru/img/3.jpg" alt="Заголовок 3" title="Заголовок 3"class="crp_thumb crp_correctfirst"><div class="crp_title">Заголовок 3</div></a></li>
</ul>
<div class="crp_clear"></div>
</div>

<script>
var ul1=document.getElementById('ul1');
var l=ul1.children.length;
for(var i=0; i<l; i++){
var a,r,w,h,wmax,hmax;
a=ul1.children.firstChild;
r=1.44;
wmax=180;
hmax=125;
w=a.firstChild.width;
h=a.firstChild.height;
if(w/h<r){
a.firstChild.width=wmax;
a.firstChild.style.top=hmax/2-a.firstChild.height/2+'px';
a.firstChild.style.offsetTop=a.firstChild.style.top;
a.firstChild.style.offsetLeft=0;}
else{
a.firstChild.height=hmax;
a.firstChild.style.left=wmax/2-a.firstChild.width/2+'px';
}
}
</script>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий