모든 UI 개발자가 알아야 할 부트스트랩 요령

Mary-Kate Olsen
풀어 주다: 2024-11-02 06:13:02
원래의
953명이 탐색했습니다.

Bootstrap Tricks Every UI Developer Should Know

소개: 부트스트랩 게임 강화

안녕하세요, UI 개발자 여러분! 부트스트랩 기술을 다음 단계로 끌어올릴 준비가 되셨나요? 고개를 끄덕이고 있다면 (또는 적어도 그것에 대해 생각하고 있다면) 제대로 찾아오셨습니다. 오늘 우리는 여러분의 삶을 더 쉽게 만들고 프로젝트를 빛나게 만들어 줄 10가지 멋진 부트스트랩 꿀팁에 대해 알아보겠습니다. Bootstrap 초보자이든 노련한 전문가이든 이 요령은 여러분이 더 열심히 일하는 것이 아니라 더 똑똑하게 일하는 데 도움이 될 것입니다. 좋아하는 음료를 들고 편안하게 부트스트랩 개발을 강화할 수 있는 몇 가지 멋진 방법을 살펴보겠습니다!

1. 맞춤형 그리드 중단점: 맞춤형 반응성

판도를 바꾸는 맞춤형 그리드 중단점으로 시작해 보겠습니다. 우리 모두는 Bootstrap의 기본 중단점이 훌륭하다는 것을 알고 있지만 때로는 특정 프로젝트 요구 사항에 맞게 중단하지 않는 경우도 있습니다. 마법이 일어나는 곳은 다음과 같습니다.

사용자 정의 중단점을 구현하는 방법

  1. Sass 변수 파일(일반적으로 _variables.scss)을 엽니다.
  2. $grid-breakpoints 변수를 찾습니다.
  3. 기존 중단점을 수정하거나 다음과 같이 새 중단점을 추가하세요.
$grid-breakpoints: (
  xs: 0,
  sm: 576px,
  md: 768px,
  lg: 992px,
  xl: 1200px,
  xxl: 1400px,
  custom: 1600px
);
로그인 후 복사
로그인 후 복사
로그인 후 복사

이제 1600px에 반짝이는 새로운 '사용자 정의' 중단점이 생겼습니다! 하지만 더 많은 것이 있습니다. 다음과 같이 컨테이너 최대 너비를 업데이트하는 것을 잊지 마세요.

$container-max-widths: (
  sm: 540px,
  md: 720px,
  lg: 960px,
  xl: 1140px,
  xxl: 1320px,
  custom: 1540px
);
로그인 후 복사
로그인 후 복사
로그인 후 복사

이러한 변경으로 이제 매우 정확한 레이아웃 제어를 위해 col-custom-6과 같은 클래스를 사용할 수 있습니다. 멋지죠?

2. Sass Mixins: 새로운 가장 친한 친구

Bootstrap과 함께 Sass 믹스인을 사용하지 않는다면 시간을 절약해 주는 몇 가지 장점을 놓치고 있는 것입니다. 당신이 그것들 없이 어떻게 살았는지 궁금하게 만드는 몇 가지 예를 살펴보겠습니다.

반응형 글꼴 크기

많은 미디어 쿼리를 작성하지 않고도 화면 너비에 따라 글꼴 크기를 조정하고 싶었던 적이 있습니까? 다음을 확인하세요:

@mixin responsive-font($min-size, $max-size, $min-width, $max-width) {
  font-size: calc(#{$min-size}px + (#{$max-size} - #{$min-size}) * ((100vw - #{$min-width}px) / (#{$max-width} - #{$min-width})));
}

// Usage
h1 {
  @include responsive-font(24, 48, 320, 1200);
}
로그인 후 복사
로그인 후 복사
로그인 후 복사

이 믹스인은 320px 뷰포트 너비에서 24px, 1200px 뷰포트 너비에서 48px 사이에서 글꼴 크기를 원활하게 조정합니다. 꽤 깔끔하죠?

빠른 Flexbox 센터

중앙에 맞추는 것은 일반적인 작업이므로 매우 쉽게 만들어 보는 것은 어떨까요?

@mixin flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

// Usage
.centered-content {
  @include flex-center;
}
로그인 후 복사
로그인 후 복사
로그인 후 복사

이제 단 한 줄의 코드로 무엇이든 중앙에 배치할 수 있습니다. 미래의 당신도 감사할 것입니다!

3. 맞춤형 양식 스타일링: 군중 속에서 눈에 띌 수 있음

Bootstrap의 양식 스타일은 훌륭하지만 때로는 좀 더 독특한 것을 원할 때도 있습니다. 좀 더 신나게 해보자!

멋진 라디오 버튼

누가 라디오 버튼이 지루해야 한다고 말했나요? 사이즈에 맞게 입어보세요:

.custom-radio {
  .custom-control-input {
    &:checked ~ .custom-control-label::before {
      background-color: #007bff;
      border-color: #007bff;
    }
    &:checked ~ .custom-control-label::after {
      background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
    }
  }
}
로그인 후 복사
로그인 후 복사
로그인 후 복사

선택하면 멋진 애니메이션이 포함된 세련되고 현대적인 라디오 버튼이 제공됩니다. 브랜드에 맞게 색상을 업데이트하는 것을 잊지 마세요!

세련된 선택 드롭다운

기본 선택 드롭다운은 약간... 음, 기본값처럼 보일 수 있습니다. 문제를 해결해 보겠습니다.

$grid-breakpoints: (
  xs: 0,
  sm: 576px,
  md: 768px,
  lg: 992px,
  xl: 1200px,
  xxl: 1400px,
  custom: 1600px
);
로그인 후 복사
로그인 후 복사
로그인 후 복사

선택한 드롭다운에 맞춤 화살표 아이콘과 멋진 초점 효과가 제공됩니다. 중요한 것은 작은 것입니다!

4. 유틸리티 클래스: CSS의 Swiss Army Knife

Bootstrap의 유틸리티 클래스는 놀라울 정도로 강력하지만 때로는 좀 더 필요한 경우도 있습니다. 여러분의 삶을 더욱 편리하게 만들어줄 몇 가지 맞춤형 유틸리티를 만들어 보겠습니다.

반응형 여백 및 패딩

간격을 더욱 세밀하게 제어하고 싶으십니까? 이것을 시도해 보십시오:

$container-max-widths: (
  sm: 540px,
  md: 720px,
  lg: 960px,
  xl: 1140px,
  xxl: 1320px,
  custom: 1540px
);
로그인 후 복사
로그인 후 복사
로그인 후 복사

이제 중간 화면 이상에서 4rem의 최고 마진을 제공하는 mt-md-6과 같은 클래스가 있습니다. 간격완벽!

텍스트 잘림

텍스트를 우아하게 잘라야 합니까? 다음은 편리한 유틸리티 클래스입니다.

@mixin responsive-font($min-size, $max-size, $min-width, $max-width) {
  font-size: calc(#{$min-size}px + (#{$max-size} - #{$min-size}) * ((100vw - #{$min-width}px) / (#{$max-width} - #{$min-width})));
}

// Usage
h1 {
  @include responsive-font(24, 48, 320, 1200);
}
로그인 후 복사
로그인 후 복사
로그인 후 복사

이 클래스를 요소에 추가하면 긴 텍스트가 줄임표로 잘립니다. 간단하지만 효과적입니다!

5. 맞춤형 구성요소: 고정관념에서 벗어나 생각하기

Bootstrap은 훌륭한 구성 요소 세트를 제공하지만 때로는 약간 다른 것이 필요할 수도 있습니다. 더욱 멋스러운 맞춤 구성요소를 만들어 보겠습니다.

호버 효과가 있는 멋진 카드

좋은 카드 호버 효과를 좋아하지 않는 사람이 있을까요? 다음을 확인하세요:

@mixin flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

// Usage
.centered-content {
  @include flex-center;
}
로그인 후 복사
로그인 후 복사
로그인 후 복사

이제 마우스를 올리면 이미지가 약간 올라가고 어두워지는 카드가 생겼습니다. 미묘하지만 디자인에 멋진 상호작용성을 더해줍니다.

6. 성능 최적화: 지방 제거

Bootstrap은 훌륭하지만 모든 기능을 사용하지 않으면 약간 무거울 수 있습니다. 날씬하게 만드는 방법을 살펴보겠습니다.

맞춤형 빌드

Bootstrap을 모두 포함하는 대신 필요한 구성 요소만 포함하여 사용자 정의 버전을 구축해 보는 것은 어떨까요? 방법은 다음과 같습니다.

  1. 부트스트랩 저장소를 복제하세요.
  2. scss 폴더로 이동하세요.
  3. bootstrap.scss를 엽니다.
  4. 필요하지 않은 구성 요소는 주석 처리하세요.
  5. 사용자 정의 버전을 컴파일하세요.

예를 들어 캐러셀이나 툴팁을 사용하지 않는 경우 bootstrap.scss는 다음과 같을 수 있습니다.

.custom-radio {
  .custom-control-input {
    &:checked ~ .custom-control-label::before {
      background-color: #007bff;
      border-color: #007bff;
    }
    &:checked ~ .custom-control-label::after {
      background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
    }
  }
}
로그인 후 복사
로그인 후 복사
로그인 후 복사

이렇게 하면 CSS 파일 크기가 크게 줄어들고 로드 시간이 단축될 수 있습니다. 모든 킬로바이트가 중요합니다!

7. 접근성 향상: 모두를 위한 포괄적인 디자인

접근성은 포괄적인 웹 경험을 만드는 데 매우 중요합니다. Bootstrap의 접근성을 향상시키는 몇 가지 방법을 살펴보겠습니다.

링크 건너뛰기

건너뛰기 링크는 키보드 사용자가 사이트를 보다 효율적으로 탐색하는 데 도움이 됩니다. 구현 방법은 다음과 같습니다.

.custom-select {
  appearance: none;
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;
  padding-right: 2.25rem;

  &:focus {
    border-color: #80bdff;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
  }
}
로그인 후 복사
로그인 후 복사
$spacer: 1rem;
$spacers: (
  0: 0,
  1: $spacer * .25,
  2: $spacer * .5,
  3: $spacer,
  4: $spacer * 1.5,
  5: $spacer * 3,
  6: $spacer * 4,
  7: $spacer * 5
);

@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-up($breakpoint) {
    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
    @each $prop, $abbrev in (margin: m, padding: p) {
      @each $size, $length in $spacers {
        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
        .#{$abbrev}t#{$infix}-#{$size},
        .#{$abbrev}y#{$infix}-#{$size} {
          #{$prop}-top: $length !important;
        }
        .#{$abbrev}r#{$infix}-#{$size},
        .#{$abbrev}x#{$infix}-#{$size} {
          #{$prop}-right: $length !important;
        }
        .#{$abbrev}b#{$infix}-#{$size},
        .#{$abbrev}y#{$infix}-#{$size} {
          #{$prop}-bottom: $length !important;
        }
        .#{$abbrev}l#{$infix}-#{$size},
        .#{$abbrev}x#{$infix}-#{$size} {
          #{$prop}-left: $length !important;
        }
      }
    }
  }
}
로그인 후 복사
로그인 후 복사

이렇게 하면 집중할 때만 표시되는 링크가 생성되어 키보드 사용자가 기본 콘텐츠로 직접 건너뛸 수 있습니다.

향상된 초점 스타일

Bootstrap의 기본 포커스 스타일은 기능적이지만 시각적으로 더욱 매력적으로 만들 수 있습니다.

$grid-breakpoints: (
  xs: 0,
  sm: 576px,
  md: 768px,
  lg: 992px,
  xl: 1200px,
  xxl: 1400px,
  custom: 1600px
);
로그인 후 복사
로그인 후 복사
로그인 후 복사

이렇게 하면 Bootstrap의 색 구성표와 잘 어울리는 더욱 눈에 띄는 초점 스타일이 만들어집니다.

8. 반응형 이미지: 모든 장치에서 완벽한 그림

특히 모바일 기기에서 이미지는 디자인을 성사시키거나 망칠 수 있습니다. 반응적으로 이미지를 처리하는 몇 가지 방법을 살펴보겠습니다.

반응형 배경 이미지

어떤 기기에서도 멋지게 보이는 전체 너비 배경 이미지를 원하시나요? 이것을 시도해 보십시오:

$container-max-widths: (
  sm: 540px,
  md: 720px,
  lg: 960px,
  xl: 1140px,
  xxl: 1320px,
  custom: 1540px
);
로그인 후 복사
로그인 후 복사
로그인 후 복사

이렇게 하면 뷰포트 너비에 따라 다양한 크기의 이미지가 로드되므로 작은 기기에서 파일 크기가 불필요하게 커지지 않고도 배경이 항상 선명하게 보입니다.

지연 로딩

이미지 지연 로딩으로 페이지 로드 시간을 개선하세요.

@mixin responsive-font($min-size, $max-size, $min-width, $max-width) {
  font-size: calc(#{$min-size}px + (#{$max-size} - #{$min-size}) * ((100vw - #{$min-width}px) / (#{$max-width} - #{$min-width})));
}

// Usage
h1 {
  @include responsive-font(24, 48, 320, 1200);
}
로그인 후 복사
로그인 후 복사
로그인 후 복사
@mixin flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

// Usage
.centered-content {
  @include flex-center;
}
로그인 후 복사
로그인 후 복사
로그인 후 복사

이 스크립트는 Intersection Observer API를 사용하여 이미지가 뷰포트에 들어가려고 할 때만 이미지를 로드하므로 초기 페이지 로드 시간이 크게 향상됩니다.

9. 다크 모드: 다크 사이드 포용

요즘 다크 모드가 대세인데 그럴 만한 이유가 있습니다. 저조도 환경에서는 눈이 편해지고 OLED 화면의 배터리 수명도 절약됩니다. Bootstrap 사이트에 다크 모드 토글을 추가해 보겠습니다.

다크 모드 구현

먼저 어두운 모드 변수를 만들어 보겠습니다.

.custom-radio {
  .custom-control-input {
    &:checked ~ .custom-control-label::before {
      background-color: #007bff;
      border-color: #007bff;
    }
    &:checked ~ .custom-control-label::after {
      background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
    }
  }
}
로그인 후 복사
로그인 후 복사
로그인 후 복사

이제 토글 버튼을 추가해 보겠습니다.

.custom-select {
  appearance: none;
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;
  padding-right: 2.25rem;

  &:focus {
    border-color: #80bdff;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
  }
}
로그인 후 복사
로그인 후 복사

이를 작동시키는 JavaScript는 다음과 같습니다.

$spacer: 1rem;
$spacers: (
  0: 0,
  1: $spacer * .25,
  2: $spacer * .5,
  3: $spacer,
  4: $spacer * 1.5,
  5: $spacer * 3,
  6: $spacer * 4,
  7: $spacer * 5
);

@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-up($breakpoint) {
    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
    @each $prop, $abbrev in (margin: m, padding: p) {
      @each $size, $length in $spacers {
        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
        .#{$abbrev}t#{$infix}-#{$size},
        .#{$abbrev}y#{$infix}-#{$size} {
          #{$prop}-top: $length !important;
        }
        .#{$abbrev}r#{$infix}-#{$size},
        .#{$abbrev}x#{$infix}-#{$size} {
          #{$prop}-right: $length !important;
        }
        .#{$abbrev}b#{$infix}-#{$size},
        .#{$abbrev}y#{$infix}-#{$size} {
          #{$prop}-bottom: $length !important;
        }
        .#{$abbrev}l#{$infix}-#{$size},
        .#{$abbrev}x#{$infix}-#{$size} {
          #{$prop}-left: $length !important;
        }
      }
    }
  }
}
로그인 후 복사
로그인 후 복사

이제 사용자의 선호도를 기억하는 다크 모드가 작동됩니다!

10. 애니메이션 통합: 사이트에 생기를 불어넣기

마지막으로, Bootstrap 사이트가 더욱 역동적이고 매력적으로 느껴지도록 미묘한 애니메이션을 추가해 보겠습니다.

스크롤 시 애니메이션 적용

먼저 AOS(Animate On Scroll) 라이브러리를 설치해 보겠습니다.

.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
로그인 후 복사

이제 요소에 애니메이션을 추가할 수 있습니다.

.fancy-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;

  &:hover {
    transform: translateY(-5px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
  }

  .card-img-top {
    transition: opacity 0.3s ease;
  }

  &:hover .card-img-top {
    opacity: 0.8;
  }
}
로그인 후 복사

위 내용은 모든 UI 개발자가 알아야 할 부트스트랩 요령의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!