La conception
Le contenu des widgets d'information doit être aligné verticalement au milieu comme tel :
La conception codée
Windows : Chrome 20 / FF 14 / IE 9
Mac (Lion / Mt. Lion) : Chrome / FF
Le code
HTML
<div class="info">
<div class="weather display clearfix">
<div class="icon"><img src="imgs/icons/thunderstorms.png" align="Thunderstorms" /></div>
<div class="fl">
<p class="temperature">82° / 89°</p>
<p class="conditions">Thunderstorms</p>
</div>
</div>
<div class="time display">
<p>11:59 <span>AM</span></p>
</div>
<div class="date display clearfix">
<p class="number fl">23</p>
<p class="month-day fl">Jun <br />Sat</p>
</div>
</div><!-- //.info -->
CSS
.info {
display:table;
border-spacing:20px 0;
margin-right:-20px;
padding:6px 0 0;
}
.display {
background-color:rgba(255, 255, 255, .2);
border-radius:10px;
-ms-border-radius:10px;
color:#fff;
font-family:"Cutive", Arial, sans-serif;
display:table-cell;
height:70px;
vertical-align:middle;
padding:3px 15px 0;
}
.display p {padding:0;line-height:1em;}
.time, .date {padding-top:5px;}
.time p, .date .number {font-size:35px;}
.time span, .display .month-day, .conditions {
font-size:14px;
text-transform:uppercase;
font-family:"Maven Pro", Arial, sans-serif;
line-height:1.15em;
font-weight:500;
}
.display .month-day {padding-left:5px;}
.icon {float:left;padding:0 12px 0 0}
.display .temperature {font-size:24px;padding:4px 0 0;}
.display .conditions {text-transform:none;padding:2px 0 0;}
.lt-ie9 .display { /* IE rgba Fallback */
background:transparent;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#20ffffff,endColorstr=#20ffffff);
zoom:1;
}
La question
En regardant les images ci-dessus de la conception codée, vous pouvez voir comment cela semble perturber l'alignement. En regardant de plus près, le texte est rendu à l'extérieur de l'élément sur le Mac.
Windows
Mac
Note
J'intègre les polices par le biais d'une feuille de style Google Web Fonts.
Testé
J'ai essayé ce qui suit :
- Définir les hauteurs de ligne sur chaque élément.
- Définir les poids de la police sur chaque élément.
- Définir des hauteurs sur chaque élément.
- Une combinaison de height/padding-top sur chaque élément.
- Utilisation de pourcentages/em/px pour le rembourrage.
Il semble que, quoi que j'essaie, le contenu ne sera jamais parfaitement aligné sur le mac et le pc.
Ma (mes) question(s)
Est-il possible de réaliser ce que j'essaie de faire de manière simpliste ?
Dois-je renoncer à la display:table-cell;
et définir des hauteurs/espaces spécifiques sur chaque élément et enfant ? Je serai toujours confronté à des problèmes d'espacement entre les deux systèmes d'exploitation.
Dans quelle catégorie dois-je classer cette question ? Hauteur de ligne ? Cellules du tableau ? OS ? etc...
Merci d'avance !
0 votes
Utilisez-vous une réinitialisation CSS ? Et si oui, qu'utilisez-vous ?
0 votes
Oui, j'utilise une réinitialisation CSS et c'est personnalisé, mais ce n'est pas comme normalize css.
14 votes
Je ne peux pas croire qu'il n'y ait pas plus d'informations sur cette question en ligne.
1 votes
J'ai lu quelque part que l'espacement vertical peut être modifié avec FontForge. Si quelqu'un sait comment résoudre ce problème avec FontForge, ce serait une réponse en or.
0 votes
Pour une réponse de FontForge voir ma réponse ci-dessous
0 votes
Je pense
line-height: initial;
résoudra votre problème :)