Удаление внешнего поля между <html>и краем браузера с помощью Angular и CSS - PullRequest
0 голосов
/ 20 июня 2020

Это должно быть тривиально, но я потратил 2 дня, и у меня закончились идеи. Что бы я ни делал, я не могу удалить внешнее белое пространство между страницей html / body и краем окна браузера. Я хочу, чтобы содержимое страницы было гриппом sh с краем.

Я использую Angular CLI 9.1.8. Та же проблема на Chrome и Edge на Win 10. Я создал здесь проект stackblitz, чтобы воспроизвести проблему:

приложение. Компонент. html:

<!DOCTYPE html>
<html>
  <body>
    How to remove white space between red border and browser edge...
  </body>
</html>

приложение. компонент. css:

body, html {
  height: 100%;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid red;
}

Красная граница в 1 пиксель есть, чтобы я мог видеть, где они находятся и будут удалены. Вот как это выглядит:

enter image description here

I have also tried:

  • display: inline-block;
  • min-height: 100%;
  • height: 100vh;
  • overflow: hidden;
  • css reset: *{ margin: 0; padding: 0; }
  • wrapping body or components in
  • !important at end of each line

I have tried everything in these stackoverflow threads and more:

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

Было предложено два решения, решающих эту проблему (спасибо участникам). Проблема root заключалась в том, что у меня были теги <html> и <body> в app.component. html. В Angular это запрещено. body{margin:0} был применен к <body> компонента, но в индексе html был более высокий уровень <body>, который добавлял нежелательные поля. Удаление <html> и <body> из app.component. html и перемещение стилей в стилях. css Устранена проблема.

Было предложено другое решение для установки body{position: absolute; top: 0; left: 0} в app.component. css. Это действительно сработало, но замаскировало реальный источник проблемы, которым были неуместные теги <body> и <html>.

Последнее замечание: Angular похоже, не выполняет более одного компонента в индексе. html. Несмотря на то, что у меня был компонент в <header>, <main> и <footer>, визуализировался только компонент в <main>. Как бы то ни было, вот как выглядит мое окончательное решение:

стилей. css

body, html {
  height: 100%;
  width: 100%;
  margin: 0 !important;
}

index. html

<!DOCTYPE html>
<html>
  <body>
    <app-root></app-root>
  </body>
</html>

app. компонент. html

<header>
  <app-main-menu></app-main-menu>
</header>
<main>
  <app-landing-page></app-landing-page>
</main>
<footer>
  <app-footer></app-footer>
</footer>
0 голосов
/ 20 июня 2020

это перед CSS

Это проверяющий элемент

Это перед CSS с кодом

Это после CSS с кодом

Попробуйте изменить значение полей и отступов селектора Universe на ноль. Если это не сработает, попробуйте изменить индивидуальное значение полей и отступов другого элемента на ноль. Вы также можете проверить каждый элемент, используя ctrl + shift + i, затем найти элемент, который нарушает макет.

CSS строка будет -

*{
margin: 0;
padding: 0;
}

Вы должны изменить отступ также на 0 и посмотрите, подключен ли ваш файл CSS к вашему коду.

Это лучшее, что я мог попробовать ..

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