Вертикальное выравнивание перекрывающихся элементов в IE - PullRequest
5 голосов
/ 08 января 2011

У меня есть эта форма, которую я создаю, которая отлично отрисовывается в Chrome и FF, но в IE полностью выровнена.

Как это должно выглядеть:

Изображение: alt text

HTML:

<!--image upload bit-->
                        <div class="portlet-content">
                        <div class="logoInfo">
                        <h3><strong>Large Logo</strong></h3>
                        <p>Width: 160px, Height: 20px | image will be resized automatically</p>
                        </div>
                    <div class="imageUploadLogo noLogo"><img id="agencyLogo" src="images/logo_silhouette.png" width="170px" height="32px"></div>
                    <a href="helper/uploadpic.php?lightbox[width]=360&lightbox[height]=140&lightbox[iframe]=1" class="lightbox"><div id="logo_uploada">Upload</div></a> 
                </div>
                <div class="clearfix"></div>
                    <hr></hr>
                    <!--//image upload bit-->
                    <!--office upload bit-->
                        <div class="portlet-content">
                        <div class="logoInfo">
                        <h3><strong>Office Image</strong></h3>
                        <p>Width: 160px, Height: 120px | image will be resized automatically</p>
                        </div>
                    <div class="imageUploadPhoto noPhoto"><img id="agencyLogo" src="images/office_silhouette.png" width="160px" height="120px"></div>
                    <a href="helper/uploadpic.php?lightbox[width]=360&lightbox[height]=140&lightbox[iframe]=1" class="lightbox"><div id="logo_uploada">Upload</div></a>
                    <div class="extraInfo">
                    <h3><strong>Photo of your office</strong></h3>
                    <p>Image must be actual photograph of your office</p>
                    </div>
                </div>
                <div class="clearfix"></div>
                    <hr></hr>
                    <!--//office upload bit-->
                    <h3><strong>Office Description</strong> limited to 1000 characters ( no HTML tags )</h3>
                        <div class="field2"><label for="description">Office Description</label> <textarea class="resizable" id="officeDesc" rows="7" cols="50" name="description"></textarea>
                        </div>
                            <div class="clearfix"></div>

CSS:

/*agency profile stuff*/

.noLogo {
    border: 2px dashed #4f8a10;
}
.noPhoto {
    border: 2px dashed #4f8a10;
}
.imageUploadLogo {
    background-color: #fff;
    border: 2px dashed #CECECE;
    float: left;
    margin: 0 15px 0 0;
    padding: 20px 0;
    text-align: center;
    width: 190px;
}
.imageUploadPhoto {
    background-color: #fff;
    border: 2px dashed #CECECE;
    float: left;
    margin: 0 15px 0 0;
    padding: 20px 0;
    text-align: center;
    width: 190px;
}
#logo_uploada
{
    position:absolute;
    left:300px;
    top:46px;
    width:180px;
    background: #999999;
    font-size: 26px;
    font-weight: bold;
    text-align: center;
    color: #FFF;
    padding-top: 10px;padding-bottom: 10px;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    margin-bottom: 0.4em;
    margin-top: 0.4em;
}
#logo_uploada a:visited,
#logo_uploada a:link{
color: #fff;
}

#logo_uploada:hover {
background-color: #3399ff;
cursor:pointer;
}
.logoInfo {
position:absolute;
left:300px;
top:5px;
}
.extraInfo {
position:absolute;
left:300px;
top:110px;
}

По запросу это выглядит в IE: alt text

1 Ответ

9 голосов
/ 08 января 2011

Хорошо в рассмотрении:

1) похоже, что вы используете теги "hr" для границы ... когда вам это не нужно. Вместо этого оберните весь ваш контент «portlet-content» и контент «imageUploadLogo» классом (т. Е. «UploadContainer», который имеет «border-bottom: 1px solid #CECECE; clear: both; display block; padding: 0 0 20px 0» ; поле: 0 0 20px 0; ширина: 100%;)

.uploadContainer { border-bottom: 1px solid #CECECE; clear: both; display block; padding: 0 0 20px 0; margin: 0 0 20px 0; width: 100%; }

Отступы и поля предназначены для пробелов. Затем вы можете удалить теги "hr".

Итак, ваш новый контейнер будет:

<div class="uploadContainer">
                <div class="portlet-content">
                    <div class="logoInfo">
                    <h3><strong>Office Image</strong></h3>
                    <p>Width: 160px, Height: 120px | image will be resized automatically</p>
                    </div>
                <div class="imageUploadPhoto noPhoto"><img id="agencyLogo" src="images/office_silhouette.png" width="160px" height="120px"></div>
                <a href="helper/uploadpic.php?lightbox[width]=360&lightbox[height]=140&lightbox[iframe]=1" class="lightbox"><div id="logo_uploada">Upload</div></a>
                <div class="extraInfo">
                <h3><strong>Photo of your office</strong></h3>
                <p>Image must be actual photograph of your office</p>
                </div>
</div>

2) Нет необходимости для #logo_uploada иметь «position: absolute». Вместо этого установите «display: block;» а затем поле + отступ для позиции.

3) Похоже, у вас есть дополнительный тег "/ div" для этих двух контейнеров ... должен быть обернут во что-то, верно? # 1, который я разместил, должен быть контейнером для твердого тела для использования.

Все ваши div'ы, вероятно, должны быть сброшены для использования «display: block», если вы используете css-reset .

Надеюсь, это поможет! Попробуйте эти стили и проверьте, как они работают.

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