Почему появляется переполнение? - PullRequest
3 голосов
/ 12 января 2020

Когда я добавляю средний div (синий на скриншоте), появляется горизонтальная полоса прокрутки.

Я пытался изменить width на divs, решил использовать разные единицы измерения.

Играется со значениями position, значениями display.

Я новичок, и я понятия не имею, что я делаю неправильно. Пожалуйста, помогите мне:)

Может быть, есть проблема с изображениями в моем коде? Снимок экрана

body {
  margin: 0;
  font-family: 'Open Sans', sans-serif;
  font-size: 18px;
  font-weight: 400;
  color: hsl(192, 100%, 9%);
  width: 100vw;
}

* {
  box-sizing: border-box;
}

h1,
h2 {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
}

p {
  font-size: 18px;
}

button {
  font-family: 'Open Sans', sans-serif;
  ;
  font-weight: 700;
}


/* Header */
header {
  height: 100vh;
  width: 100%;
  background-image: url(./images/bg-hero-desktop.svg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  background-color: hsl(193, 100%, 96%);
}

.container {
  width: 85%;
  margin: 0 auto;
  padding-top: 3rem;
}

nav {
  display: flex;
  justify-content: space-between;
}

.nav-btn {
  font-family: inherit;
  width: 11rem;
  border-radius: 1.2rem;
  background-color: #fff;
  border: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  outline: none;
}

.main {
  display: flex;
  justify-content: space-between;
}

.main-text {
  margin-top: 8.5rem;
  width: 32rem;
}

.mockups {
  margin-top: 4rem;
  display: block;
  height: auto;
  width: 50%;
}

.main-btn {
  color: #fff;
  background-color: hsl(322, 100%, 66%);
  width: 14.5rem;
  height: 2.8rem;
  border: none;
  border-radius: 1.4rem;
  outline: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
  margin: .2rem .4rem;
}

/* Middle */
.middle {
  width: 20%;
  height: 100px;
  background-color: blue;
}
<head>
  <meta charset="UTF-8">
  <title>Huddle</title>
  <link rel="stylesheet" href="styles.css">
  <link href="https://fonts.googleapis.com/css?family=Poppins" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
</head>

<body>
  <header>
    <div class="container">
      <nav>
        <img class="logo" src="./images/logo.svg" alt="">
        <button class="nav-btn">Try It Free</button>
      </nav>
      <div class="main">
        <div class="main-text">
          <h1>Built The Community <br> Your Fans Will Love</h1>
          <p>Huddle re-imagines the way we build communities.
          You have a voice, but so does your audience. 
          Create connections with your users as engage in genuine discussion.</p>
          <button class="main-btn">Get Started For Free</button>
        </div>
        <img class="mockups" src="./images/illustration-mockups.svg" alt="">
      </div>
    </div>
  </header>
  <div class="middle">
    <div class="grow"></div>
    <div class="conv"></div>
    <div class="users"></div>
  </div>
</body>

Ответы [ 2 ]

1 голос
/ 12 января 2020

Просто удалите width: 100vw; из CSS тела.

Другой вариант - использовать overflow-x: hidden; на теле.

Обновление

Я думаю, что горизонтальная прокрутка присутствует из-за вертикальной полосы прокрутки, поэтому при установке ширины тела на 100vw это вызывает переполнение.

Имея это в виду, вы можете сохранить width: 100vw; просто установите max-width: 100%.

body {
	margin: 0;
	font-family: 'Open Sans', sans-serif;
	font-size: 18px;
	font-weight: 400;
	color: hsl(192, 100%, 9%);
}

* {
	box-sizing: border-box;
}

h1, h2 {
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
}

p {
	font-size: 18px;
}

button {
	font-family: 'Open Sans', sans-serif;;
	font-weight: 700;
}

/* Header */

header {
	height: 100vh;
	width: 100%;
	background-image: url(./images/bg-hero-desktop.svg);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	background-color: hsl(193, 100%, 96%);
}

.container { 
	width: 85%;
	margin: 0 auto;
	padding-top: 3rem;
}

nav {
	display: flex;
	justify-content: space-between;
}

.nav-btn {
	font-family: inherit;
	width: 11rem;
	border-radius: 1.2rem;
	background-color: #fff;
	border: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.3);
	outline: none;
}

.main {
	display: flex;
	justify-content: space-between;
}

.main-text {
	margin-top: 8.5rem;
	width: 32rem;

}

.mockups {
	margin-top: 4rem;
	display: block;
	height: auto;
	width: 50%;
}

.main-btn {
	color: #fff;
	background-color: hsl(322, 100%, 66%);
	width: 14.5rem;
	height: 2.8rem;
	border: none;
	border-radius: 1.4rem;
	outline: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.6);
	margin: .2rem .4rem;
}

/* Middle */

.middle {
	width: 20%;
	height: 100px;
	background-color: blue;
}
<html>
<head>
	<meta charset="UTF-8">
	<title>Huddle</title>
	<link rel="stylesheet" href="styles.css">
	<link href="https://fonts.googleapis.com/css?family=Poppins&display=swap" rel="stylesheet">
	<link href="https://fonts.googleapis.com/css?family=Open+Sans&display=swap" rel="stylesheet">

</head>
<body>
	<header>
		<div class="container">
			<nav>
				<img class="logo" src="./images/logo.svg" alt="">
				<button class="nav-btn">Try It Free</button>
			</nav>
			<div class="main">
				<div class="main-text">
					<h1>Built The Community <br> Your Fans Will Love</h1>
					<p>Huddle re-imagines the way we build communities. You have a voice, but so does your audience. Create connections with your users as engage in genuine discussion.</p>
					<button class="main-btn">Get Started For Free</button>
				</div>
				<img class="mockups" src="./images/illustration-mockups.svg" alt="">
			</div>
		</div>
	</header>
	<div class="middle">
		<div class="grow"></div>
		<div class="conv"></div>
		<div class="users"></div>

	</div>

</body>
</html>
0 голосов
/ 12 января 2020

Добавьте это к css

   body {
     overflow-x: hidden;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...