css Абсолютная позиция и наследование отображения разрыва строки с новой строкой - PullRequest
0 голосов
/ 10 мая 2018

Я только что удалил часть моего очень гигантского кода, где происходит странная вещь:

<!DOCTYPE html>
<html>
<head>
    <title>Page Title</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
    <style>
        .something {
            position: absolute;
            display: inherit;
        }
    </style>
</head>
<body>

<p>This is a UL</p>


<ul>
    <li>Text 1</li>
    <li title="Press Enter to validate">
        <div class="something">
            <span>Text 2</span>
        </div>
    </li>
</ul>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>

<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
</body>
</html>

css Абсолютная позиция и отображение наследования добавляют новую пустую строку над линией. Как удалить эту строку, не удаляя существующую CSS?

1 Ответ

0 голосов
/ 10 мая 2018

Если вы не хотите иметь очко " ghost " li, вам нужно сделать следующее:

.something {
    position: absolute;
    display: inline;
}
<p>This is a UL</p>

<ul>
    <li title="Press Enter to validate">
        <div class="something">
            <input type="text" value="" autocomplete="off"  placeholder="Add a new topic">
        </div>
    </li>
</ul>

Свойство display: inline; исправит это, не удаляя CSS, вам нужно только изменить это.

Я не знаю, почему это именно так, но проблема в том, что тег div создает новую строку. Установив для display значение inline, это решит проблему, поскольку гарантирует, что div только отображает в уникальной строке.

...