Jump to content
  • 0

Нюанс скругления края меню


Squidward
 Share

Question

Привожу для примера рисунок, это сделано на флеше (поэтому код через Firebug посмотреть не могу), а мне похожее нужно в HTML:

68ce093ef673.gif

Как скруглить левый верхний угол у <li> (или скруглить край меню), который подсвечен оранжевым и находится слева с краю? Оранжевый цвет накладывается при условии hover и selected при помощи background: url(../libg.gif) repeat-x; Если, допустим, задавать border-radius для оберточного дива меню, то на этот <li> он действовать не будет и бекграунд у <li> окажется квадратным и отобразится поверх скругленного уголка оберточного дива. На <li>, разумеется, скругление не наложишь, иначе в середине меню будут скругленные пункты. Как быть? Спасибо.

Link to comment
Share on other sites

Recommended Posts

  • 0

ul#myid li {background: ulr(mymainlink);}
ul#myid li:first-child {border-radius-top-left: 4px;}
ul#myid li:last-child {border-raius-top-right: 4px;}
ul#myid li:hover, ul#myid li.selected {background: url(myanotherlink);}

П.С. Немного не успел, девушек в перёд :)

П.С. Намбер 2: Ещё вот ссылко есть - https://developer.mozilla.org/en/CSS/border-top-left-radius

Link to comment
Share on other sites

  • 0

Squidward,

1) Добавить класс

2) Использовать :first-child и :last-child

ul#myid li {background: ulr(mymainlink);}
ul#myid li:first-child {border-radius-top-left: 4px;}
ul#myid li:last-child {border-raius-top-right: 4px;}
ul#myid li:hover, ul#myid li.selected {background: url(myanotherlink);}

П.С. Немного не успел, девушек в перёд :)

П.С. Намбер 2: Ещё вот ссылко есть - https://developer.mozilla.org/en/CSS/border-top-left-radius

Нифига не выйдет. Тут надо только с классами, причем вешать их только для ссылки.

Link to comment
Share on other sites

  • 0

Враньё. Можно даже как пробовал сам автор темы закруглить обёртку, например ul.

Говорю же, ничего не выйдет http://jsfiddle.net/PMWPL/16/ Плавали, знаем.

А с классами вполне http://jsfiddle.net/PMWPL/15/

Link to comment
Share on other sites

  • 0

А объясните лошаре, почему не пашет так? http://jsfiddle.net/PMWPL/16/

Да потому что border-radius не наследуется. А внутри ведь еще один блок.

Ааа, ну тада можно сделать так:

li:first-child{

border-radius:10px 0px 0px 0px;

-moz-border-radius:10px 0px 0px 0px;

-webkit-border-radius:10px 0px 0px 0px;

overflow: hidden;

}

Link to comment
Share on other sites

  • 0

А объясните лошаре, почему не пашет так? http://jsfiddle.net/PMWPL/16/

Да потому что border-radius не наследуется. А внутри ведь еще один блок.

Ааа, ну тада можно сделать так:

li:first-child{

border-radius:10px 0px 0px 0px;

-moz-border-radius:10px 0px 0px 0px;

-webkit-border-radius:10px 0px 0px 0px;

overflow: hidden;

}

Да, overflow в какой-то мере решает проблему, но если внимательно посмотреть как рендерит это браузер, то можно заметить некие отличия от последовательного скругления вложенных блоков,от overflow.

Edited by Softlink
Link to comment
Share on other sites

  • 0

А объясните лошаре, почему не пашет так? http://jsfiddle.net/PMWPL/16/

Да потому что border-radius не наследуется. А внутри ведь еще один блок.

Ааа, ну тада можно сделать так:

li:first-child{

border-radius:10px 0px 0px 0px;

-moz-border-radius:10px 0px 0px 0px;

-webkit-border-radius:10px 0px 0px 0px;

overflow: hidden;

}

Да, overflow в какой-то мере решает проблему, но если внимательно посмотреть как рендерит это браузер, то можно заметить некие отличия от последовательного скругления вложенных блоков,от overflow.

Погоди, а я не понял, в чём тест заключается? На что внимание обратить?

Link to comment
Share on other sites

  • 0

А объясните лошаре, почему не пашет так? http://jsfiddle.net/PMWPL/16/

Да потому что border-radius не наследуется. А внутри ведь еще один блок.

Ааа, ну тада можно сделать так:

li:first-child{

border-radius:10px 0px 0px 0px;

-moz-border-radius:10px 0px 0px 0px;

-webkit-border-radius:10px 0px 0px 0px;

overflow: hidden;

}

Да, overflow в какой-то мере решает проблему, но если внимательно посмотреть как рендерит это браузер, то можно заметить некие отличия от последовательного скругления вложенных блоков,от overflow.

Погоди, а я не понял, в чём тест заключается? На что внимание обратить?

в overflow не прорисовывается граница родителя скругленного угла. Кстати, overflow не срабатывает для скругления img, так что там в любом случае надо дублировать скругление для самого изображения.

Edited by Softlink
Link to comment
Share on other sites

  • 0

Ребят, меню ЦМСка генерит, как же я на отдельные li классы наложу?

Используйте

li:first-child(last-child){
border-radius:10px 0px 0px 0px;
-moz-border-radius:10px 0px 0px 0px;
-webkit-border-radius:10px 0px 0px 0px;
overflow: hidden;
}

В вашем случае это сработает.

Link to comment
Share on other sites

  • 0

Softlink, Погоди, а может ткнуть носом прям? Какой пример и угол?

Это скругление с overflow - http://clip2net.com/s/18kXZ

Это последовательное скругление вложенных блоков - http://clip2net.com/s/18kYw

Link to comment
Share on other sites

  • 0

Softlink, Погоди, а может ткнуть носом прям? Какой пример и угол?

Это скругление с overflow - http://clip2net.com/s/18kXZ

Это последовательное скругление вложенных блоков - http://clip2net.com/s/18kYw

Ааа, понял. Спасибо. А есть выходы?

Link to comment
Share on other sites

  • 0

Какой нафиг overflow?

http://jsfiddle.net/PMWPL/18/

Ребят, меню ЦМСка генерит, как же я на отдельные li классы наложу?

Ковырять цмску или через js

Вполне, только не забыть добавить li:hover

Link to comment
Share on other sites

  • 0

Вполне, только не забыть добавить li:hover

Ну да. Зачем в данном случае вообще на линк вешать фон.

Вот так всегда. Мужики стараются, выясняют, парятся, а женщина пришла, увидела и победила :D

Да вам только дай поспорить :D

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