2011/11/22

dtをfloatした時にIEで右にずれる場合


dtをfloatした時にIEでddの1つ目の項目が右にずれてしまいました。
IEのバグだそうです(>_<)
いろいろ解決方法があるようですが、IEハックは好きではないし、あまり複雑な事もしたくないので、なるべく簡単に対処出来る方法で対応してみました。
dt {
    float: left;
    margin-right: -85px;
    display: block;
}
dd {
    margin-left: 85px;
    padding-left: 0;
}
要するに、ddで右へずらした分と同じ分だけ、dtの右マージンにマイナス値を入れる事でうまく行きました。
dtの左にマージンを入れたい場合は、その分も含めてマイナス値を入れるとうまく行きます。
dt {
    float: left;
    margin-right: -180px;
    margin-left: 30px;
    display: block;
}
dd {
    margin-left: 150px;
    padding-left: 0;
}