Jump to content
  • 0

Блок с разной высотой по бокам.


davidnum
 Share

Question

25 answers to this question

Recommended Posts

  • 0

Оупс, не заметил)

 

Вот нашел реализации с помощью бордера:

http://codeitdown.com/pure-css-responsive-triangles/

http://jsfiddle.net/craigcannon/58dVS/17/

http://jsfiddle.net/josedvq/3HG6d/

Насколько я знаю, толщину бордера нельзя задать в относительных единицах. Поэтому не выйдет :(

Link to comment
Share on other sites

  • 0

Оупс, не заметил)

 

Вот нашел реализации с помощью бордера:

http://codeitdown.com/pure-css-responsive-triangles/

http://jsfiddle.net/craigcannon/58dVS/17/

http://jsfiddle.net/josedvq/3HG6d/

Хм...я тут подумал. Если представить это блок как большой треугольник, то что может получиться. Но тогда придётся убирать горизонтальный overflow, а ширину блока делать где-то 3000px, что крайне не желательно.

Народ, может кто-то сталкивался с такой задачей?

Link to comment
Share on other sites

  • 0

Такое можно и без скрипта сделать, вопрос в том, что эти ширина (высота) блока по краям получается ездит, то больше, то меньше, а должна быть фиксированной как я понимаю.

Link to comment
Share on other sites

  • 0

Вот первый вариант в процентах 

http://jsfiddle.net/LEKP8/

(проставить нужные префиксы - пока только для хрома).

 

Второй вариант, чтобы нижний блок обрезался в пикселях - 

http://jsfiddle.net/LEKP8/1/

 

Хоть и эти свойства поддерживают только современные браузеры - думаю изящная деградация тут вполне уместна.

 

Остальные способы насколько я просекаю будут по высоте в зависимости от ширины и высоты родителя разными (тут можно применть как бордер 2000пикселей, который обрезается родителем лишнее, так и skaleY, rotate но угол поворота может давать разныую высоту, что нехорошо) - то есть то 10% внизу отсекать - то 20% - что не есть хорошо. так и контент недолго обрезать.

Edited by Zverushka
Link to comment
Share on other sites

  • 0

Вот первый вариант в процентах 

http://jsfiddle.net/LEKP8/

(проставить нужные префиксы - пока только для хрома).

 

Второй вариант, чтобы нижний блок обрезался в пикселях - 

http://jsfiddle.net/LEKP8/1/

 

Хоть и эти свойства поддерживают только современные браузеры - думаю изящная деградация тут вполне уместна.

 

Остальные способы насколько я просекаю будут по высоте в зависимости от ширины и высоты родителя разными (тут можно применть как бордер 2000пикселей, который обрезается родителем лишнее, так и skaleY, rotate но угол поворота может давать разныую высоту, что нехорошо) - то есть то 10% внизу отсекать - то 20% - что не есть хорошо. так и контент недолго обрезать.

Первый пример больше подоходит, т.к. у блока будет абсолютное позиционирование.

Что то не хочет в мозиле работать. Префикс прописал(-moz-).

Link to comment
Share on other sites

  • 0

http://jsfiddle.net/LEKP8/4/ вот так, только я фз что такое баундинг бокс) и мне кажется или сверху лишний отступ появился?

Нет, не кажется) Нооооо, ничего страшного! Спасибо, вам, огромное.

Link to comment
Share on other sites

  • 0

Но так-то лучше может через бордер или трансформы делать, если неважно, что высота одного края будет гулять в некотором диапазоне

Важно. Там ниже будет ещё один похожий блок, только теперь будет "гулять" верхний край.

Может я вам лучше в личке картинку макета покажу?

Edited by davidnum
Link to comment
Share on other sites

  • 0

Можно еще картинку вставить обычныю с background-size 100% и закодировать ее в base64 - будет весить 2кб. Только в 8мосле поплывет по размеру... хотя вру - с чего бы поплыло - если длина слоя 100%. В принципе top left - картинка любогоразмера будет ложиться как надо

Edited by Zverushka
Link to comment
Share on other sites

  • 0

Можно еще картинку вставить обычныю с background-size 100% и закодировать ее в base64 - будет весить 2кб. Только в 8мосле поплывет по размеру... хотя вру - с чего бы поплыло - если длина слоя 100%. В принципе top left - картинка любогоразмера будет ложиться как надо

Идея хорошая, кстати. Только мне нужно будет создать картинку с шириной примерно 6000px.

Link to comment
Share on other sites

  • 0

6000 тысяч? 1920 сейчас максимальное разрешение- разве нет?

Это как бы бэкграунд будет, он должен растягиваться на всю ширину. Способ выше не подходит, т.к. при масштабировании получается, что блок съезжает.

P.S. У ретины 2650 по ширине.

Edited by davidnum
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