Как мне центрировать изображение и эффект наведения? - PullRequest
0 голосов
/ 26 мая 2018

Я новичок в HTML и CSS.Помогите мне выровнять изображение и эффект наведения (наложение и текст поверх него), которое я использовал в приведенном ниже фрагменте кода.Я использую FlexBox, но это может испортить выравнивание, возможно, я делаю это неправильно.

.container {
  position: relative;
  width: 50%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  align-content: center;
}

h1 {
  text-align: center;
  font-size: 50px;
  color: Grey;
}

.image {
  display: block;
  width: 100%;
  height: auto;
}

.overlay {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  height: 100%;
  width: 100%;
  opacity: 0;
  transition: .5s ease;
  background-color: #008CBA;
  border-radius: 10px;
}

.text {
  color: white;
  background-color: #008CBA;
  opacity: 0;
  border-radius: 25px;
  font-size: 100px;
  position: absolute;
  top: 50%;
  left: 50%;
  padding: 10px;
  transition: 0.8s ease;
  transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  text-align: center;
}

.container:hover .overlay {
  opacity: 0.5;
}

.container:hover .text {
  opacity: 1;
}
<h1>Overlay Effect</h1>
<div class="container">
  <img src="http://www.freepngimg.com/download/technology/7-2-technology-picture.png" alt="Avatar" class="image">
  <div class="overlay"></div>
  <div class="text">Hey Sup!</div>
</div>

Вот кодовая ручка Ссылка для того же

Ответы [ 2 ]

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

Вы не используете flex правильно.Я применил изменения правильно.

.container {  
  display: flex;
  justify-content:  center;
  align-items: center;
  align-content: center;
}
.container > div {
  width: 50%;
  position: relative;
}

h1{
  text-align: center;
  font-size: 50px;
  color: Grey;
}

.image {
  
  width: 100%;
  height: auto;
}

.overlay {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  height: 100%;
  width: 100%;
  opacity: 0;
  transition: .5s ease;
  background-color: #008CBA;
  border-radius: 10px;
}

.text {
  color: white;
  background-color: #008CBA;
  opacity: 0;
  border-radius: 25px;
  font-size: 100px;
  position: absolute;
  top: 50%;
  left: 50%;
  padding: 10px;
  transition: 0.8s ease;
  transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  text-align: center;
}

.container > div:hover .overlay {
  opacity: 0.5;
}

.container > div:hover .text {
  opacity: 1;
}
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="style.css">
  <title>Overlay</title>
</head>
<body>
  

    <h1>Overlay Effect</h1>
  <div class="container">
    <div> 
      <img src="http://www.freepngimg.com/download/technology/7-2-technology-picture.png" alt="Avatar" class="image">
      <div class="overlay"></div>
      <div class="text">Hey Sup!</div>
    </div>
  </div>
</body>
0 голосов
/ 26 мая 2018

Необходимо добавить поле: 0 авто;в ваш контейнерный класс.Это будет центрировать контейнер и изображение внутри него.

.container {
  margin: 0 auto;
  position: relative;
  width: 50%;
  display: flex;
  justify-content:  center;
  align-items: center;
  align-content: center;
}

h1{
  text-align: center;
  font-size: 50px;
  color: Grey;
}

.image {
  
  width: 100%;
  height: auto;
}

.overlay {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  height: 100%;
  width: 100%;
  opacity: 0;
  transition: .5s ease;
  background-color: #008CBA;
  border-radius: 10px;
}

.text {
  color: white;
  background-color: #008CBA;
  opacity: 0;
  border-radius: 25px;
  font-size: 100px;
  position: absolute;
  top: 50%;
  left: 50%;
  padding: 10px;
  transition: 0.8s ease;
  transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  text-align: center;
}

.container:hover .overlay {
  opacity: 0.5;
}

.container:hover .text {
  opacity: 1;
}
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="style.css">
  <title>Overlay</title>
</head>
<body>
  <h1>Overlay Effect</h1>
  <div class="container">
    <img src="http://www.freepngimg.com/download/technology/7-2-technology-picture.png" alt="Avatar" class="image">
    <div class="overlay"></div>
    <div class="text">Hey Sup!</div>
  </div>
</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...