CSS Проблемы наследования - PullRequest
0 голосов
/ 08 марта 2020

Хорошо, я пытаюсь добиться того, чтобы все мои элементы были на 10 пикселей выше с левой стороны экрана, за исключением черного ящика, окружающего другие элементы. Я установил поля и отступы на 0 пикселей, чтобы черный ящик мог касаться краев экрана. Однако при этом все элементы наследуют это значение (для прикосновения к левой стороне экрана), в котором мне нужно было бы индивидуально устанавливать поля и отступы для каждого нового элемента, который я создаю. Я попытался установить тег body на 10 пикселей слева, который сдвигает все элементы влево и оставляет 10 пикселей пустого пространства слева. Когда я это сделал, это также делает так, что я не могу вернуть sh коробку назад, чтобы коснуться края экрана. Короче говоря - есть ли способ заставить все мои элементы наследовать 10px слева от экрана, за исключением рамки, окружающей элементы.


body{
    display:flex;
    display: block;
    font-family: sheepman, serif;
    font-weight: 400;
    font-style: normal;
    padding:0px 0px 0px 10px;
    margin:0px auto;
}

#boxcolor{
margin-left:-10px;
background-color:black;
}

#header{
    margin-left:10px;
    padding:20px 0px 20px 0px;

}


h1{
    color:rgb(255, 255, 255);
    font-size: 50px;
    margin:0px;
    padding-left:10px;


}

.Phead{
    color:white;
    padding-left:10px;
}

</style>

</head>




    <body>


<!--------------------------Header of the Page----------------------->
<div id="boxcolor">
        <div id="header">
            <h1>Occulture</h1>
            <p class="Phead">Sign up to learn more! <br> <br>
            <input type="email" name="email" placeholder="email"/>
            <input type="submit" value="Subscribe"/></p>
        </div>
    </div>
 <!--------------------------Header of the Page----------------------->

<p>This is a simple test Paragraph to see if this will inherit the body tag elements </p>

1 Ответ

0 голосов
/ 09 марта 2020

От вашего вопроса у меня сложилось впечатление, что вы думаете, что есть некоторые OO (объектно-ориентированные) логики c, прикрепленные к HTML и CSS. Это не вариант. Признано, что дочерние элементы могут «наследовать» от своих родителей, но только при конкретном присвоении значения inherit их атрибутам, таким как .someSelector { background-color: inherit }. Это будет единственная ссылка на «OOP», которую вы можете сделать. Потерять мысль, полностью.

Обязательное чтение w3school: CSS Ссылка селектора . Получите хорошее представление о CSS классах, селекторах и специфике селекторов, почему они используются, когда и как они используются. Html знание включает в себя значение вложенных родительских и дочерних конструкций.

В вашем случае вам понадобятся два отдельных родственных контейнера внутри вашего документа parent контейнер: <body>.

  • a .header родительский контейнер (черный фон) с внутренним пространством 10px, содержащий h1 и p дочерний elements
  • a .content родительский контейнер (белый фон) с внутренним пространством 10px, содержащий p child element

Чтобы полностью выровнять оба контейнера по сторонам документа, сначала необходимо потерять html значение по умолчанию <body>, равное 8 пикселей: body { margin: 0 }

Затем создать два контейнера внутри <body> (заголовок и содержимое) и назначьте интервалы и цвета, как показано ниже.

Дружеский совет, НЕ меняйте атрибут display элементов, если вы не знаете, как его использовать (согласно вашему двойному display назначению в body {...}). Макет Flexbox великолепен, когда вы знаете, о чем он. Html по умолчанию display: flex ориентировано на row, вам нужен column ориентированный FBL.

body {
  display: flex;
  flex-direction: column;
  font-family: sheepman, serif;
  /* font-weight: 400; /* html default */
  /* font-style: normal; /* html default */
  margin: 0;
}

.header {
  background-color: black;
  color: white;
  /* never again use PX (search online "MDN units")*/
  padding: 0.625rem /* rem is px-value/16 => 10px/16 */
}

h1 {
  font-size: 3.125rem /* 50px/16 */
}

.content {
  /* already has html default colors black on white */
  padding: 0.625rem /* 10px/16 */
}
<div class="header">
  <h1>Occulture</h1>
  <p class="Phead">Sign up to learn more! <br> <br>
    <input type="email" name="email" placeholder="email" />
    <input type="submit" value="Subscribe" /></p>
</div>

<div class="content">
  <p>This is a simple test Paragraph to see if this will inherit the body tag elements </p>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...