2011-04-15 3 views
53

comment on pourrait créer une règle de CSS pour largeurlargeur CSS 100% ou max-largeur en pixels

  • Utilise une largeur de 100% par défaut

  • Si 100% la largeur dépasse certaine largeur de pixel (disons 512 px), la largeur est serrée jusqu'à cette largeur pixel

Je ne suis pas sûr de la largeur et les relations de largeur max, ou comment calc() est pris en charge ou pourrait exprimer. Cela aurait besoin de travailler avec les derniers navigateurs WebKit et Firefox 4. IE8 etc support non nécessaire

Répondre

89

C'est en fait l'utilisation prévue de max-width. Si le width calculé (réel) d'un élément dépasse max-width, il sera contraint à la valeur max au lieu de l'aller au-delà. Le pourcentage par rapport aux pixels n'est pas pertinent.

Declare à la fois dans la même règle comme celui-ci (pas besoin de la fonction calc()):

#somediv { 
    width: 100%; 
    max-width: 512px; 
} 
+2

Cela ne fonctionne pas si vos images sont en fait plus petites que 512px et que vous ne voulez pas les mettre à l'échelle jusqu'à 512px. –

+0

Puis-je poser une autre question, existe-t-il une différence pour le définir comme '#somediv {width: 512px; max-width: 100%} '? – leetom

+0

@hugoderhungrige 512px est juste un exemple de numéro utilisé dans cette question. Dans le cas où vous ne voulez pas que vos images dépassent leur taille réelle, vous devez simplement définir votre largeur maximale à la largeur réelle de l'image. –

3

Si c'est l'élément de niveau bloc, il doit être de 100% par défaut, donc pas besoin de déclarer la largeur, puis max-width: 512px; restreindrait il

calc() est pas pris en charge très bien du tout, mais dans ce cas, je ne pense pas que vous auriez besoin

2
div{ max-width: 512px; } 

devrait suffire.

+1

comment cela résoudrait-il le 100% quand le div est plus petit que 512? Est-ce que l'image ne resterait pas juste 512 et ne pas réduire avec la taille de la div? – Jon