Работа с меню CSS3 - PullRequest
       2

Работа с меню CSS3

0 голосов
/ 08 января 2012

В настоящее время я делаю проект с меню и пытаюсь реализовать что-то похожее на меню, показанное ниже:

enter image description here

А теперь у меня есть что-то похожее на это меню и я пытаюсь изменить его, но я застрял с ним.

Вот скриншот моего меню, как оно выглядит в Chrome: enter image description here

А вот как это выглядит в IE8 и Firefox:

enter image description here

Проблема в том, что я могу получить закругленные углы, но глянец и выпуклость в меню, отображаемое в 1-м меню, не отображаются в моем меню, так как они отображаются плоскими в Chrome, IE, а также в Firefox. как мне изменить, чтобы получить то же меню, как показано на первом рисунке.

Вот мое меню css:

.menu 
{
height: 18px;
margin-left:318px;
margin-top:10px;
width:914px;
border: 1px solid #d6d6d6;
background: #fff;
padding: 14px;
text-align: center;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
background: #1612CE;
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#1612CE), to(#3B91F1));
background: -webkit-linear-gradient(#1612CE, #3B91F1);
background: -moz-linear-gradient(#1612CE, #3B91F1);
background: -ms-linear-gradient(#1612CE, #3B91F1);
background: -o-linear-gradient(#1612CE, #3B91F1);
background: linear-gradient(#1612CE, #3B91F1);
behavior: url(css/ie-css3.htc);
}

.blue {
    background : rgb(52,119,210);
    background : -webkit-gradient(linear, left top, left bottom, from(rgb(52,119,210)), to(rgb(34,98,188)));
    background : -moz-gradient(linear, left top, left bottom, from(rgb(52,119,210)), to(rgb(34,98,188)));
    border: 1px solid #2f8893;

}

 .blue li a
 {
    color: #fff;
    text-shadow: 0 -1px 0 rgba(0,0,0,.40);

}


a {
    text-decoration: none;
    color: #262626;
    line-height: 20px;
}

ul 
{
     margin: 0;
    padding: 0;
    z-index: 300;
    text-align:right;
}
li 
{
 padding: 0 10px;
    display:inline-block;
}
li:first-child {
    float:left;   
}

Вот как я это показываю:

<div class="menu blue">
    <ul >
        <li class="active"><a href="">Home</a></li>
        <li><a href="">About</a></li>
        <li><a href="">Blog</a></li>
        <li><a href="">Services</a></li>
        <li><a href="">Portfolio</a></li>
        <li><a href="">Contacts</a></li>
        <li><a href="">Back to Article</a></li>
        <li><a href="">How it Works?</a></li>
    </ul>
   </div>

Ответы [ 3 ]

2 голосов
/ 08 января 2012

Попробуйте эту комбинацию цветов: http://jsfiddle.net/TLS3Y/4/

CSS3 Пожалуйста! делает все эти правила CSS3 такими простыми:)

.menu {
    border-color: #598FD1 #598FD1 #1A53A2;
    border-style: solid;
    border-width: 2px 1px 3px;
    height: 18px;
    margin-left: 318px;
    margin-top: 10px;
    padding: 14px;
    text-align: center;
    width: 914px;
    background-color: #2A72D8;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#2A72D8), to(#1A53A2));
    background-image: -webkit-linear-gradient(top, #2A72D8, #1A53A2);
    background-image:    -moz-linear-gradient(top, #2A72D8, #1A53A2);
    background-image:     -ms-linear-gradient(top, #2A72D8, #1A53A2);
    background-image:      -o-linear-gradient(top, #2A72D8, #1A53A2);
    background-image:         linear-gradient(top, #2A72D8, #1A53A2);
    -webkit-box-shadow: inset 0px 0px 9px #2A72D8;
     -moz-box-shadow: inset 0px 0px 9px #2A72D8;
          box-shadow: inset 0px 0px 9px #2A72D8;
    -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
    -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
    behavior: url(css/ie-css3.htc);
}
1 голос
/ 08 января 2012

Прежде всего, я призываю вас использовать Lea Verou http://leaverou.github.com/prefixfree/, который избавляет вас от необходимости добавлять все эти префиксы для разных браузеров и делает только одно объявление линейного градиента

Во-вторых, вы не используете правильные объявления для линейного градиента в webkit. Должно быть

 -webkit-linear-gradient(rgb(52,119,210),rgb(34,98,188))

Это сокращенный метод, который вам следует использовать, поскольку вы не указываете углы для градиента. Это также доступно в FF

background: -moz-linear-gradient(rgb(52,119,210),rgb(34,98,188)); /* Firefox */
background: -webkit-linear-gradient(rgb(52,119,210),rgb(34,98,188)); /* Webkit */

Для 3D-вида добавьте набор box-shadow на вставке

box-shadow:inset 0 1px 0 #fff; // for a nice thing white line at the top of the menu

Вы также можете связать объявления box-shadow и иметь

box-shadow:inset 0 1px 0 #fff, 0 2px 5px #222 // thing white line at the top and drop shadow 
0 голосов
/ 08 января 2012

Вы можете выбить ul используя box-shadow:

div.blue {
  box-shadow: 2px 2px 2px #888888;
}

Градиент может быть сделан с линейным градиентом. Мне нравится генератор на http://gradients.glrzad.com/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...