Squeak.ru - шаблоны программирования

Как я могу сделать эту CSS-карту отзывчивой?

Изменить: вот CodePen с CSS/HTML

Я провожу выходные, создавая карточку CSS для веб-сайта, только чтобы понять, что она вообще не адаптивна. Я не очень хорошо разбираюсь в CSS или адаптивном дизайне, поэтому я надеюсь, что кто-то с большим опытом сможет мне помочь. До сих пор я пробовал играть с тегом @media, но безуспешно. Это соответствующий CSS:

@import url('https://fonts.googleapis.com/css?family=Muli&display=swap');

* {
  box-sizing: border-box;
}
body {
  background: #ffffff;
  font-family: 'Muli', sans-serif;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-height: 100vh;
  margin: 0;
}

.courses-container {
}

.course {
  background-color: #fff;
  border-radius: 10px;
  box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2);
  display: flex;
  max-width: 100%;
  margin: 20px;
  overflow: hidden;
  width: 1300px;
}

.course h6 {
  opacity: 0.6;
  margin: 0;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.course h2 {
  letter-spacing: 1px;
  margin: 10px 0;
}

.course-preview {
  background-color: #2a265f;
  color: #fff;
  padding: 30px;
  max-width: 250px;
}

.course-preview a {
  color: #fff;
  display: inline-block;
  font-size: 12px;
  opacity: 0.6;
  margin-top: 30px;
  text-decoration: none;
}

.course-info {
  padding: 30px;
  position: relative;
  width: 100%;
}

.right-container {
  padding: 30px;
  background-color: #fff;
  width: 30%;
  line-height: 200%;
}

.progress-container {
  position: absolute;
  top: 30px;
  right: 30px;
  text-align: right;
  width: 150px;
}

.progress {
  background-color: #ddd;
  border-radius: 3px;
  height: 5px;
  width: 100%;
}

.progress::after {
  border-radius: 3px;
  background-color: #2a265f;
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  height: 5px;
  width: 10%;
}

.progress-text {
  font-size: 10px;
  opacity: 0.6;
  letter-spacing: 1px;
}

  • Добро пожаловать в StackOverflow. Создайте минимальный пример. Также добавьте html-код. 08.09.2020
  • Пожалуйста, сделайте сниппет с вашим кодом (HTML+CSS). Это поможет нам помочь вам. 08.09.2020
  • @AbsoluteBeginner Спасибо! Я добавил CodePen, это сработает? 08.09.2020
  • Нет, кодовая ручка не нужна, когда вы можете создать рабочий пример прямо в своем вопросе. 08.09.2020
  • Ах, я не понимал, что я могу сделать это. Позвольте мне посмотреть, смогу ли я запустить его. 08.09.2020

Ответы:


1

Это простое предложение с использованием CSS Grid. Это карточка из двух столбцов (как у вас): левый столбец с фиксированной шириной (300 пикселей), правый столбец с изменяемой шириной. Я добавил небольшой промежуток между ними, чтобы сделать мой пример более понятным.

.card {
  max-width: 1000px;
  display: grid;
  grid-template: "left right" / 300px 1fr;
  background-color: #fed330;
  border-radius: 10px;
  height: 300px;
}

.card>* {
  padding: 20px;
}

.left {
  grid-area: left;
}

.right {
  grid-area: right;
}

@media screen and (max-width: 700px) {
  .card {
    grid-template: "left" "right" / 100%;
  }
}
<div class="card">

  <div class="left">
    Lorem ipsum....
  </div>

  <div class="right">
    Lorem ipsum...
  </div>

</div>

Это может быть полезной отправной точкой.

08.09.2020
  • Привет! Это на самом деле будет работать очень хорошо для меня. Благодарю вас! Есть ли способ ограничить свойство border-radius только четырьмя углами большего прямоугольника (а не левой и правой картами)? 09.09.2020

  • 2

    @гастон

    Хороший способ протестировать CSS и изучить его — использовать функцию браузера Inspect, с помощью которой вы можете проверить поведение CSS в режиме реального времени. Активация, деактивация функций, изменение значений и добавление новых. Вы видите результат в режиме реального времени. Затем просто настройте свой код в соответствии с вашими тестами.

    • Просто щелкните правой кнопкой мыши область, которую хотите проверить. а затем Осмотр.
    • Вы увидите область с HTML и другую с CSS.
    • Нажмите на области в HTML и увидите соответствующий css. ***** Тогда просто проверьте, чтобы найти желаемый результат.

    Вот как я нашел решение в вашем коде:

    В классе .course вашего css вы дважды добавили свойство ширины. максимальная ширина: 100 %; ширина: 1000 пикселей;

    Однако последнее введенное свойство имеет приоритет над предыдущими. ширина: 1000 пикселей; определяет, что ваша карта ВСЕГДА будет иметь 1000px.

    РЕШЕНИЕ:

    Просто удалите: max-width: 100%;

    И изменить ширину: 1000 пикселей; для max-width: 1000px; Таким образом, ваша карточка будет иметь максимум 1000px, минимум будет определяться в соответствии с шириной окна

    Это будет выглядеть так:

    .course {
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 0 10px 10px rgba (0, 0, 0, 0.2);
    display: flex;
    margin: 20px;
    overflow: hidden;
    max-width: 1000px;
    }
    

    Функция @media установит css, когда экран будет настроен на минимальную или максимальную ширину, выбранную вами. То, что определено в @media, будет иметь приоритет над другими css. но только когда окно соответствует установленной вами ширине.

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

    Если вы решили свою проблему, отметьте правильный ответ, чтобы помочь другим.

    Удачи.

    08.09.2020
    Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...