Responsywność, position:absolute

0

Mam zrobić zadanie w którym ma być obrazek z position absolute i left np 220px i top 100px, to ma być responsywne więc zrobiłem to w procentach, jednak mam 2 kolumny i gdy jedna znajdzie się pod drugą to jest duża przestrzeń między nimi w pionie, bo użyłem do obrazka padding-bottom by druga kolumna nie nachodziła na obrazek, jak mogę rozwiązać ten problem, oto kod:

tu link do kodu na github link i strona link

html

<!doctype html>
<html lang="en">

<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
    <link rel="stylesheet" href="src/scss/main.css">

    <title>Krystian</title>
</head>

<body>
    <div class="container position-relative">
 
        <div class="row">
            <div class="col img">
                <div class="imgimg position-relative">
                <img class='position-absolute' alt="beach"
                width='505' height="330"
                    src="images/grandmotel.png">
                </div>
            </div>
            <div class="col text">
                <div>
                    <h1>infrastructures and</h1>

                    <p>
                        Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when
                    </p>
                    <button>Button</button>
                </div>

            </div>
        </div>
    </div>
    <script src="src/js/main.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous">
    </script>
    
</body>

css

* {
  font-family: Roboto;
}

.container {
  max-width: 1440px;
  max-height: 990px;
  padding: 0;
}

.container .row {
  margin: auto;
}

.container .row .img {
  padding: 0;
}

.container .row .img .imgimg {
  height: 0;
  padding-bottom: 65.34%;
}

.container .row .img .imgimg img {
  max-width: 505px;
  max-height: 330px;
  width: 90%;
  height: 90%;
  left: 39.5%;
  top: 13.5%;
}

.container .row .text {
  padding: 9.5%;
}

.container .row .text div {
  width: 380px;
  margin: auto;
}

.container .row .text div h1 {
  height: 50px;
  font-size: 42px;
  line-height: 50.4px;
  color: #121212;
  width: 380px;
}

.container .row .text div h1,
.container .row .text div button {
  font-weight: 700;
}

@media screen and (max-width: 1260px) {
  .row {
    flex-direction: column;
  }
}

@media screen and (max-width: 960px) {
  img {
    left: 20%;
  }
}

@media screen and (max-width: 720px) {
  img {
    left: 10%;
    padding-right: 10px;
  }
}
3

Mam zrobić zadanie w którym ma być obrazek z position absolute i left np 220px i top 100px, to ma być responsywne więc zrobiłem to w procentach,

Nie rozumiem samej idei tego zadania. W sensie, że ktoś ci każe zrobić RWD i masz wymóg używania position: absolute?

0

mam kod na figme i tam jest position absolute i nie wiem czy powienienem się tego trzymać czy po prostu zadbać o odpowiednie zachowanie się elementu

2
mistrzkrisu6 napisał(a):

mam kod na figme i tam jest position absolute

Narzędzia typu Figma, Adobe XD, Photoshop, Sketch, Anima itd nie do końca poprawnie generują kod CSS, więc raczej możesz śmiało to olać i zrobić normalnie bez tego position: absolute;.

Przykładowo u mnie w projekcie Figma wygenerowała takie wartości
Przechwytywanie.JPG

Zapisy position: absolute z width/height wylatują jako pierwsze, bo jeśli ustawimy wymiary na sztywno to element nie będzie responsywny. Powinien być zamiast tego jakiś flexbox / grid, żeby wszystko ładnie się skalowało.

Zostaje nam jedynie deklaracja fonta / line-height / color / letter-spacing, ale z tego też część możemy wykreślić, bo te właściwości są dziedziczone z elementów wyżej.

W przykładzie większość styli przypisałem klasie .wrapper, a elementy h3, h4 mają zmienione jedynie style, które są specyficzne. Powinieneś dobrać selektory w taki sposób, żeby wszystko zgadzało się z projektem, ale żeby nie było zbędnych powtórzeń w CSS.

<style>
  .wrapper {
    font-family: 'Sora';
    font-size: 18px;
    line-height: 22px;
    letter-spacing: -0.01em;
    color: #2C3459;
  }

  .wrapper h3, .wrapper h4 {
    font-size: 22px;
    line-height: 28px;
    font-weight: 600;
  }
</style>

<div class="wrapper">
  <h3>Lorem ipsum</h3>
  <h4>Lorem ipsum sir dolor amet</h4>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
</div>

1 użytkowników online, w tym zalogowanych: 0, gości: 1