2011-02-09 4 views
2

Je suis nouveau dans le monde de la conception/programmation, donc je suis sûr que le problème est facile à résoudre. J'essaie d'ajouter l'effet moz-box-shadow à mon en-tête. Mais dès que j'ajoute ce composant, l'en-tête qui occupe de l'espace horizontalement se raccourcit. Je veux que l'en-tête ressemble à Twitter, où ils utilisent un effet d'ombre.Minor Numéro CSS

#header { 
    background-color: #990000; 
    width:101.3%; 
    margin-left:-8px; 
    margin-top:-8px; 
    height:40px; 
    -moz-box-shadow: 1px 1px 10px #D7D7D7; 
} 

De même, la façon dont j'ai défini la largeur est-elle susceptible de créer des problèmes croisés?

+3

Cela fonctionne pour moi, vous ne pouvez pas voir l'ombre parce qu'il est trop léger, essayez de mettre la couleur au noir juste à des fins de visualisation. – JCOC611

+0

Hey, l'ombre n'est pas le problème, c'est la largeur de l'en-tête, quand j'utilise l'effet d'ombre, le raccourcit un peu peut-être de 10%. Néanmoins, c'est perceptible. – AAA

+3

Ceci: 'largeur: 101,3%; marge gauche: -8px; margin-top: -8px; '- on dirait que vous pourriez être * en train de mal faire * un petit peu :) Ça va marcher, mais il y a probablement un moyen plus standard de réaliser la même chose. – thirtydot

Répondre

4

est ici une version similaire à ce que Twitter a :
Ce est version de Twitter, plus ou moins:

Live Demo (edit)

HTML:

<div id="top-fixed"> 
    <div id="top-bar"></div> 
</div> 

CSS:

html, body { 
    margin: 0; padding: 0 
} 
body { 
    padding-top: 50px; 
    background: #c0deed 
} 
#top-fixed { 
    position: fixed; 
    left: 0; 
    right: 0; 
    top: 0; 
    z-index: 1000; 
} 
#top-bar { 
    height: 40px; 
    width: 100%; 

    background-color:#00a0d1; 
    background-image:-webkit-gradient(linear,0 0,0 100%,from(#00a0d1),to(#008db8)); 
    background-image:-moz-linear-gradient(#00a0d1,#008db8); 
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00a0d1',endColorstr='#008db8'); 
    -ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr='#00a0d1',endColorstr='#008db8')"; 

    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); 
    -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); 
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); 
} 
+2

+1 pour l'exemple génial et le lien bien stylé. – JCOC611

+0

Merci l'homme !! Y at-il un moyen de ne pas le faire réparer mais toujours obtenir le même effet. Comme vous savez comment la barre bleue montre encore quand vous faites défiler vers le bas, que faire si vous pouvez le faire sans être réparé. – AAA

+1

Bien sûr, il suffit de changer 'position: fixed' à' position: absolute' et il ne restera pas au sommet lorsque vous faites défiler: http://jsfiddle.net/n3r2y/1/ – thirtydot

2

L'astuce que Twitter utilise, met dans une boîte en position absolue et donner cette boîte une largeur de 100% et l'ombre. En utilisant overflow-x: hidden sur son parent, vous obtenez l'effet que vous recherchez.

1

J'ai fait des ombres avec .png. Je ne vois aucun avantage à l'utiliser (surtout parce que je suppose que les navigateurs ont commencé à supporter .png avant de supporter les ombres see, for example, Mozila's statement that FF started supporting box shadows in FF3.5), mais bien sûr, si cela vaut mieux que de faire des ombres via .png, n'hésitez pas à laisser un commentaire. faux!

+0

Vous avez raison de dire que faire les ombres avec les fichiers '.png' fonctionnera presque partout, alors que' box-shadow' ne fonctionnera que dans les navigateurs les plus récents. Cependant, il n'est pas * essentiel * que les ombres fonctionnent dans des navigateurs plus anciens (plus rares) - c'est un cas de [amélioration progressive] (http://en.wikipedia.org/wiki/Progressive_enhancement). De plus, le nombre de personnes utilisant de nouveaux navigateurs augmente et augmente. Donc, pour ce qui est de la beauté des yeux mineurs, Twitter a décidé de s'en tenir à «box-shadow». – thirtydot