Jump to content
  • 0

Резиновый блок с круглыми краями


WalkMan
 Share

Question

Recommended Posts

  • 0
сосбно сабж

нужен блок который тянеться и в ширину и в высоту

углы у него закгругленные (пнг или гиф)

Untitled-1.gif

подсказали решение таблицей

но хотелось бы без неё

можно таблицей. но таблицей не семантично будет! таблицы для данных а в данной задаче это на данные не похоже!

советую дивами

три дива, верхний (в нем левый и правый уголок абсолютами), далее средний див собсно с контетом и нижний, который аналогичен верхнему по структуре

да и в данном примере с пнг прозрачностью думаю морочиться не нужно для 6 ие, у тя фон однородный поэтому мона делать гифами краями под фон

структура примерно такая

<div class="top">

<div class="leftCorner"></div>
<div class="rightCorner"></div>

</div>

<div class="content">content</div>

<div class="bottom">

<div class="leftCorner"></div>
<div class="rightCorner"></div>

</div>

классы leftCorner и rightCorner делай фоновым изображением, и лучше наверное с абсолютным позиционированием, ибо с флоатами может возникнуть трабл, сам недавно с таким мучился -_-

Edited by TonKhaO
Link to comment
Share on other sites

  • 0
ну те что с углами это понятно

там фиксы

а вот top/content/bottom ?

пс

мот у тебя где висит работающий пример?

да запросто, посмотри на http://www.tatyanavais.ru/tehnolog.html, найди по айди блок left_area и там увидишь как раз корнеры.

а так могу сказать что top/content/bottom в них не нужно указывать width, он там по умолчанию стоит правильный (auto) то есть они на всю ширину родительского дива, то есть те еще нужно для top/content/bottom создать родитель а вот уже в нем если нужно проставить ширину, у меня в примере как раз родитель left_area

или же вот пример Уолкера аналогичный http://psywalker.ru/Box/box5/main.html

Edited by TonKhaO
Link to comment
Share on other sites

  • 0

Зачем делить главный блок на три части?????

Один блок! А в нём абсолютным позиционированием раскидываешь уголки и всё!

Всё легко:

.box {
position: relative;
display: inline-block; /* has-layout for ie6! */
}

tl, bi, tr, br {
position: absolute;
overflow: hidden; /* has-layout for ie6 */
width: ...px;
height: ...px}

/*+ каждому углу ставишь top, left, right & bottom ну и background*/

HTML:

<div class="box">
здрасьте
<div class="tl"></div>
<div class="bl"></div>
<div class="tr"></div>
<div class="br"></div>
</div>

Надеюсь понятно.

Ах, да, если углы маленькие, да и вообще, ставь для всех углов font-size: 0

Edited by Yahoo!
Link to comment
Share on other sites

  • 0
Зачем делить на три?????

Один блок! А в нём абсолютным позиционированием раскидываешь уголки и всё!

ты знаешь что если 1 блок сделать и сделать уголки абсолютами в этом блоке то в ИЕ6 на пиксель внизу все полезет?

у меня была такая фигня все в 1 блоке сделал, и соотв у нижних уголков прописывал типа top: 100%; margin-top: -высота элемента и у меня на пиксель в ИЕ6 было несоответствие, и на сколько я помню если написать вместо "topa и margin-top" BOTTOM, то в ИЕ 6 тож были какие то траблы с этим, но если покажешь работающий кроссбраузерный пример то с удовольствием посмотрю

Edited by TonKhaO
Link to comment
Share on other sites

  • 0
да запросто, посмотри на http://www.tatyanavais.ru/tehnolog.html, найди по айди блок left_area и там увидишь как раз корнеры.

а так могу сказать что top/content/bottom в них не нужно указывать width, он там по умолчанию стоит правильный (auto) то есть они на всю ширину родительского дива, то есть те еще нужно для top/content/bottom создать родитель а вот уже в нем если нужно проставить ширину, у меня в примере как раз родитель left_area

или же вот пример Уолкера аналогичный http://psywalker.ru/Box/box5/main.html

счас поколупаемся

Link to comment
Share on other sites

  • 0

Yahoo! кстати смотри, вопрос на засыпку, что если задний фон не однородный а градиентный (да и пофиг даж не градиентный пусть будет) как у меня на сайте пример которого я привел. ну вот сделал ты внутри 1 блока все абсолюты а картинки-уголки у тебя пнг с прозрачностью, и ты уже не сможешь проставить внешнему блоку маргины боковые, и верхние тоже то есть тебе прийдется уголки делать не 4 картинками а 2-мя, верхней и нижней + ко всему такой подход позволяет сделать только фиксированную ширину у дива, убедил? -_-

Edited by TonKhaO
Link to comment
Share on other sites

  • 0

Почему не смогу? Если блоку задана ширина, то надо по-любому оборачивать) А на счёт 1px нижние делай через експрешн, а правый left: 100%; right: нирина уголка+ уголка (точно не помню). А не помню, потому что закруглюм немного другим способом.

если покажешь работающий кроссбраузерный пример то с удовольствием посмотрю

Вот кстати

HTML
<div class="box">
<div><div><div><div>
здрасьте
</div></div></div></div>
</div>

CSS
.box {border: 1px solid #abcdef}
.box div {background: url(...(tl)) no-repeat 0 0; top: -1px; left: -1px; position: relative}
.box div {background: url(...(bl)) no-repeat 0 100%; top: 2px; left: 0}
.box div {background: url(...(br)) no-repeat 100% 100%; top:; left: 2px}
.box div {background: url(...(bl)) no-repeat 100% 0; top: -2px; left: 0; padding: ECJIu Hago}

Link to comment
Share on other sites

  • 0
Почему не смогу? Если блоку задана ширина, то надо по-любому оборачивать) А на счёт 1px нижние делай через експрешн, а правый left: 100%; right: нирина уголка+ уголка (точно не помню). А не помню, потому что закруглюм немного другим способом.

смари у тебя получается в способе лишний экспрешн, для меня это уже не гуд, я всегда их сторонюсь в css а код твой попробую вечером

Edited by TonKhaO
Link to comment
Share on other sites

  • 0

Ну ладно-ладно, если надо кросс, без экспрешена и 1px лишних, то используй эти пустые дивы) возьму на заметку тож)

Кстати, не реально же закруглить блоки, что б неоднородный фон был и внутри блока и снаружи и что б всё это норм сочеталось, конечно же резина без CSS3 и JS -_-

Edited by Yahoo!
Link to comment
Share on other sites

  • 0
Ну ладно-ладно, если надо кросс, без экспрешена и 1px лишних, то используй эти пустые дивы) возьму на заметку тож)

Кстати, не реально же закруглить блоки, что б неоднородный фон был и внутри блока и снаружи и что б всё это норм сочеталось, конечно же резина без CSS3 и JS -_-

реально, однопиксельными блоками, очень много однопиксельных блоков

Link to comment
Share on other sites

  • 0

У меня была идея сверстать такой изврат)) типо без графики и всё такое -_-

На блоге димокса видел статью про закругление без графики попиксельно и получилась однопиксельная закруглённая размытенькая рамочка. Кстати кроссбраузерно. Но это мега-изврат)

Link to comment
Share on other sites

  • 0
Ну ладно-ладно, если надо кросс, без экспрешена и 1px лишних, то используй эти пустые дивы) возьму на заметку тож)

Кстати, не реально же закруглить блоки, что б неоднородный фон был и внутри блока и снаружи и что б всё это норм сочеталось, конечно же резина без CSS3 и JS -_-

конечно кросс это вообще главное :( кому как а я честно стараюсь без экспрешенов, а один пиксел лишний убивает сам понимаешь верстку, этот пиксель за версту видно )))

могу одно сказать я вечером попробую в 1 блоке через bottom без отриц маргинов, если все будет кроссбраузерно то беру твой способ на заметку, но сам онимаешь твой способом подходит только если картинки-уголки непрозрачные, тогда они конечно перекроют задний фон на стыках в углах внешнего дива

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