Различный результат сетки css в Chrome и MS Edge

Я новичок в веб-разработке, поэтому я не совсем уверен, что здесь не так. Я использую загрузочную сетку. Вот css:

body {
    background: #252525;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: white;
    height: 100%;
    width: 100%;
    overflow: auto;
    margin: 0;
    padding: 0;
}

html {
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
}
.grid-container {
    display: grid;
    overflow: auto;
    height: inherit;
    width: inherit;
}

.grid-container > * {
    position: absolute
}


.login-box {
    align-self: center;
    justify-self: center;
    width: 80%;
    max-width: 450px;
    min-width: 250px;
    padding: 0;
}

HTML:

<div class="grid-container">
            <div class="login-box container-fluid">
                <div class="row">
                    <form id="frmLogin">
                        <div class="col-md-12 clear-margin-padding text-center">
                            <h4>Login to service</h4>
                        </div>

                        <div class="col-md-12 clear-margin-padding" style="margin-top: 10px;">
                            <table>
                                <col width="90">
                                <col width="*">

                                <tr>
                                    <td>Email</td>
                                    <td><input type="email" id="txtEmail" required></td>
                                </tr>

                                <tr>
                                    <td>Password</td>
                                    <td><input type="password" id="txtPassword" required></td>
                                </tr>
                            </table>
                        </div>

                        <div class="col-md-12 clear-margin-padding text-center" style="margin-top: 10px">
                            <div class="wrap-panel">
                                <button type="button" id="btnRegister">Register</button>
                                <button type="submit" id="btnLogin">Login</button>
                            </div>
                        </div>
                    </form>

                    <div class="col-md-12 clear-margin-padding text-center" style="margin-top: 5px">
                        <a href="/recovery">Forgot my password</a>
                    </div>
                </div>
            </div>
        </div>

Результат в Edge

Результат в Chrome

Я не уверен, кто здесь не прав, но наверняка это вызвано

position: absolute;

Чего я хочу добиться, так это сделать окно входа в систему центрированным, и когда я хочу добавить больше «поля» в контейнер сетки, я могу расположить их на основе выравнивания и выравнивания себя, чтобы контейнер сетки мог действовать как сетка WPF. контроль.

Любая помощь приветствуется.

Другой пример (тот же контейнер .grid):

HTML:

<div class="grid-container">
            <div style="width:100px;height:100px;align-self:start;justify-self: left;background: black"></div>
            <div style="width:100px;height:100px;align-self:center;justify-self: center;background: black"></div>
            <div style="width:100px;height:100px;align-self:end;justify-self: right;background: black"></div>
        </div>

MS Edge

Chrome


person Ivan Kara    schedule 26.08.2018    source источник


Ответы (2)


Это оказалось ошибкой MS Edge, я думаю, из-за position: absolute в моем коде CSS. Мне удалось не использовать абсолютное позиционирование, и все работает хорошо. Спасибо за помощь в любом случае! :)

person Ivan Kara    schedule 24.09.2018

Чтобы решить вашу проблему, просто удалите display: grid из контейнера сетки, а также display: flex, justify-content: center и align-items: center. Теперь .grid-container должно быть следующим:

 .grid-container {
    display: grid;
    justify-content: center;
    align-items: center;
    overflow: auto;
    height: inherit;
    width: inherit;
}

и убери align-self: center; justify-self: center; из своего .login-box, то .login-box должно быть следующим:

.login-box {
    width: 80%;
    max-width: 450px;
    min-width: 250px;
    padding: 0;
}

вы можете найти обновленную скрипту здесь.

В целом, поскольку вы не используете CSS Grid, я бы посоветовал отказаться от display: grid, так как при настройке IE использование display: grid не самый рекомендуемый подход, поскольку поддержка ограничена IE 10+, и даже в этом случае поддержка является частичной и для более старой спецификации сетки например justify-self justify-content align-self align-content не поддерживаются или неровные.

Не стесняйтесь задавать любые вопросы, если что-то непонятно.

person Rawan Bekheet    schedule 26.08.2018