Jump to content
  • 0

Сверстать портфолио


IvanRu08
 Share

Question

Верстаю очередной макетик-портфолио. Столкнулся с проблемой. Идут 16 картинок, по 4 вряд. Указываю для класса .works margin: 40px 0 40px 0;

Получается что и у 4, 8, 12, 16 блоков есть отступ справа 40. Они как бы выступают из основного контейнера. С помощью nth-child убираю этот отступ. Есть другой способ? Так как при добавлении еще n количества работ придется дописывать css

Вот сама работа: http://cm04741.tmweb.ru/

Edited by IvanRu08
Link to comment
Share on other sites

20 answers to this question

Recommended Posts

  • 0

Ну так как у тебя настроен css, то у тебя ничего не сломается, если добавить еще элементы. У тебя же

.work:nth-child(4n+4) {    margin-right: 0;}

Не самый универсальный подход. Но если ты 100% уверен, что у тебя будет именно такая сетка, и всегда одинаковые элементы в ней, то это вполне рабочий вариант.

  • Like 2
Link to comment
Share on other sites

  • 0
Я знакомиться с вебом только начал, но как насчет того, чтобы отдельный класс создать для этих вот четвертых в строке блоков? 

Чел который будет делать из этого шаблон, или вешать на cms, будет прокленать тебя за это :) 

Link to comment
Share on other sites

  • 0

Ну так как у тебя настроен css, то у тебя ничего не сломается, если добавить еще элементы. У тебя же

.work:nth-child(4n+4) {    margin-right: 0;}

Не самый универсальный подход. Но если ты 100% уверен, что у тебя будет именно такая сетка, и всегда ожинаковые элементы в ней, то это вполне рабочий вариант.

Ага, уже поправил, спасибо.

Я знакомиться с вебом только начал, но как насчет того, чтобы отдельный класс создать для этих вот четвертых в строке блоков? 

Не вариант, а если этих блоков будет 50? 50 отдельных классов создавать что ли?)

Link to comment
Share on other sites

  • 0
Не вариант, а если этих блоков будет 50? 50 отдельных классов создавать что ли?)
 

не, класс можно сделать один типа .work-last, и добавить его каждому четвертому блоку. Но просто потом, когда программист будет выводить этот контент, вместо того чтобы на морозе валить это в цикле, придется добавлять дополнительную проверку, на каждую четвертую итерацию, чтобы добавить этот класс. 

Link to comment
Share on other sites

  • 0
Но если ты 100% уверен, что у тебя будет именно такая сетка, и всегда одинаковые элементы в ней, то это вполне рабочий вариант

В чём проблема поправить 1 строку в css, если захочется поменять сетку?

 

А вообще ТС бы воздуха по бокам добавить, всё липнет к краям на маленьком монике. 

Edited by antonKar
Link to comment
Share on other sites

  • 0
В чём проблема поправить 1 строку в css, если захочется поменять сетку?

Тут дело в том, что, по большому счету, эта сетка в принципе не очень универсальна. Ну да если нужно будет из нее же сделать такого же принципа сетку 3x3, то да достаточно будет подправить пару строк кода и оно будет работать.

 

Просто что сетка может быть и сложнее, тебе может стоять надобность в элементе сетки который будет занимать две ячейки, а в то время как остальные останутся такие же. Тогда в такой реализации как сейчас это станет проблемой, т.к. :nth-child(4n+4) не прокатит. Тогда придется строить сетку на другом принципе. А если еще и адаптивность нужна, то тем более.

Например на inline-block http://jsfiddle.net/alexriz/x2tzvd1L/

Или более современный вариант на flex-box: http://jsfiddle.net/alexriz/t8jdqdz1/

Или хотя бы уже как в bootstrap сделано

 

Но да, простую адаптивность можно и в таком варианте сделать, конечно.

Link to comment
Share on other sites

  • 0
Просто что сетка может быть и сложнее, тебе может стоять надобность в элементе сетки который будет занимать две ячейки, а в то время как остальные останутся такие же

ИМХО проблемы надо решать по мере их поступления.

 

А вообще если ТС задаст просто margin: 20px, то у него будет решена и проблема с его отсупами, и с прилипанием элементов к краям, не понимаю из-за чего вообще сыр-бор.

Link to comment
Share on other sites

  • 0
А вообще если ТС задаст просто margin: 20px, то у него будет решена и проблема с его отсупами, и с прилипанием элементов к краям, не понимаю из-за чего вообще сыр-бор.

Не много не понял. Про какой отступ вы говорите? В макете левый отступ между изображениями именно 40px 

Link to comment
Share on other sites

  • 0
А вообще если ТС задаст просто margin: 20px, то у него будет решена и проблема с его отсупами, и с прилипанием элементов к краям, не понимаю из-за чего вообще сыр-бор.

Если он задаст 20px маргин, то у него сетка отойдет от краев внутрь на 20px 

Link to comment
Share on other sites

  • 0
Про какой отступ вы говорите?

Про правый. И вообще все.

 

 

 

В макете левый отступ между изображениями именно 40px 

Вот у вас и будет 40 пикселей между изображениями, и по 20 пикселей по бокам, чтобы не липло к краям браузера. 

 

Если он задаст 20px маргин, то у него сетка отойдет от краев внутрь на 20px

Родителя в любом случае расширять придётся. 

Edited by antonKar
Link to comment
Share on other sites

  • 0
Родителя в любом случае расширять придётся.

только вот расширять родителя можно влево,  но не вправо. 

то есть технически можно и вправо расширить, но не стоит... 

Link to comment
Share on other sites

  • 0

Ой, всё, вот прям такая лень объяснять по кругу одно и то же, что я уже говорил ранее.

 

А вообще если ТС задаст просто margin: 20px, то у него будет решена и проблема с его отсупами, и с прилипанием элементов к краям, не понимаю из-за чего вообще сыр-бор.
 
Link to comment
Share on other sites

  • 0

Что-то ты меня совсем запутал ахахах  ^_^

 

Если он задаст margin: 20px; то у него получится между ячейками сетки по 40px, а от краев контейнера отступ 20px. Как я понял, ему нужно, чтобы крайние ячейки не отступали от границ контейнера

  • Like 1
Link to comment
Share on other sites

  • 0
Как я понял, ему нужно, чтобы крайние ячейки не отступали от границ контейнера

Да, верно, но при этом у него есть момент с тем, что блоки в таком случае будут прилипать к границам браузера на маленьком разрешении.

 

Есть 2 стула варианта:

1) Просто убираем отступ справа и родителю делаем отступы по бокам;

2) Делаем по 20 пикселей для ячеек, в таком случае крайние ячейки будут отступать от границ контейнера, но при этом они не будут прилипать к границам браузера.

 

ИМХО второй способ проще и более поддерживаемый в будущем.

Link to comment
Share on other sites

  • 0

А все понял, о чем ты. Ну тут правильнее настраивать сам скелет страинцы, чтобы он не лип к краям. Это, в общем-то, не столько проблема именно сетки, это проблема скелета. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy