React로 페이지 여백을 설정하는 방법
TL;박사 01 명
서브어셈블리는 모 어셈블리의 레이아웃 스타일을 알 수 없습니다.
먼저 서브어셈블리는 모 어셈블리의 레이아웃 스타일을 알지 않아야 합니다.
예를 들어 하나의 구성 요소에 여러 개의 아이콘이 있다고 가정하면 다음과 같다.
아이콘 사이의 간격이 같습니다.
아이콘 구성 요소에서 이 경계를 정의했다면 다음과 같습니다.
.icon {
...
... margin-right: 15px;
}
현재, 다른 페이지에서 이 아이콘 구성 요소를 사용하고 싶다면, 이 페이지에서 아이콘 오른쪽에 100px의 경계가 필요합니다.어떻게 할 거예요?이 문제를 해결할 수 있는 방법은 많지만, 무엇을 선택하든지, 이 아이콘 구성 요소의 경계를 걱정해야 한다.이러한 해결 방안이 축적됨에 따라 우리는 점점 더 더러운 CSS가 생길 것이라고 나는 상상하기 쉽다고 생각한다.
이것이 바로 서브어셈블리의 부모가 사용할 레이아웃에 따라 스타일을 디자인해서는 안 되는 이유입니다.
적당한'채우기'가 있으면 돼요.
나는 채우기만 적당하면 구성 요소가 자신의 채우기를 가지게 할 수 있다고 생각한다.
예를 들어 버튼 구성 요소를 보기보다 크게 만들어 클릭을 받을 수 있는 영역을 늘릴 수 있습니다.
누가 이윤을 가지고 있는지 알고 정확한 결정을 내리기만 한다면, 너는 괜찮을 것이다.
누가 보증금을 가지고 있습니까?
내가 위에서 말한 바와 같이, 누가 이윤을 가지고 있는지, 그리고 정확한 결정을 내릴 수 있다면, 너는 괜찮을 것이다.
그래서 문제는'누가 원소 간의 경계를 가지고 있습니까?'
나는 부모님이 아니면 아무도 없다고 생각한다.
의 기원
가장 뚜렷한 상황은 격자 레이아웃입니다. 그 중에서 부모 용기는 레이아웃 스타일을 설명합니다.
grid-gap
을 사용하여 여백을 지정할 수 있습니다..grid {
display: grid;
grid-gap: 1rem;
}
아무도 없다
모 레벨이 레이아웃에 구조를 지정하지 않은 경우 여백은 다른 사용자가 아닌 독립된 솔리드로 볼 수 있습니다.
이것도 디자이너의 이윤율에 대한 견해와 같아야 한다.디자이너가 두 요소 사이의 간격을 결정할 때 그/그녀는'간격이 이 요소와 관련이 있다'고 생각하지 않고'이것은 같은 개념이기 때문에 간격이 더 작아야 한다. 이 두 요소는 완전히 다르기 때문에 우리는 그것들을 더 많이 분리하자'고 추측했다.
그들은 이 원소 간의 관계에 근거하여 이윤율을 결정한다.
따라서 보증금은 어느 한 측에 속하지 않고 한 가지 일만 책임진다. 보증금이 있다.
구현 방법
우리는 그것을 어떻게 실현하는지 깊이 토론할 것이다.
부모 메쉬
앞에서 말한 바와 같이 격자 구조에 대해 우리는
grid-gap
을 사용할 것이다.grid-
을 추가하지 않으면 Safari에서 작동하지 않습니다.https://developer.mozilla.org/en/docs/Web/CSS/gap
수직과 수평 방향을 개별적으로 지정할 수 있습니다.
같은 줄이나 열에 다른 폭을 설정하려면, 그것들을 한데 끼워서 정상적으로 작동하도록 할 수 있다.
부모-flexbox
나는
gap
을 사용하고 싶지만, 본문을 작성할 때 사파리가 그것을 지원하지 않기 때문에 채택하기 어렵다.나는 그것들이 곧 실시될 수 있기를 바란다.https://developer.mozilla.org/en/docs/Web/CSS/gap
https://caniuse.com/flexbox-gap
하위 요소 사이의 간격이 같습니다.
ul
과 ol
등 목록 요소를 사용할 때 이렇다.이를 위해
Stack
구성 요소를 사용하십시오.예를 들어 Chakra UI의 스택을 살펴보겠습니다.
https://chakra-ui.com/docs/layout/stack
이렇게
spacing
구성 요소의 Stack
을 설정하면 이 값은 요소 간의 경계로 적용됩니다.Chakra UI에서는 여백 스타일을 적용하기 위해 StackItem이라는 구성 요소 매핑 및 패키지 하위 요소를 사용합니다.
만약 이 창고에 같은 간격의 값이 여러 개 있다면, 이 방법을 사용해야 할 수도 있습니다.(단, 개념적으로 정확하지 않기 때문에 미래에 새로운 요소를 위해 다른 여유를 설정하려면 분해를 해야 할 수도 있습니다. 따라서 이런 상황에서 간격표를 사용하는 것이 가장 좋다고 생각합니다.)
아무도 없다
마지막으로, 만약 그것이 누구에게도 속하지 않는다면, 우리는 간격 구성 요소를 만드는 것을 고려할 것이다.
직접 제작하고 싶다면
size
과 axis
을 지정하면 다음과 같다.(https://www.joshwcomeau.com/react/modern-spacer-gif/ 참조)
import React from 'react';
const Spacer = ({
size,
axis,
style = {},
... .delegated,
}) => {
const width = axis === 'vertical' ? 1 : size;
const height = axis === 'horizontal' ? 1 : size;
return (
<span
style={{
display: 'block',
width,
minWidth: width,
height,
minHeight: height,
... . style,
}}
{... .delegated}
/>
);
};
export default Spacer;
유일하게 필요한 도구는 사이즈입니다.// It will be 16px x 16px
<Spacer size={16} />
원하는 방향 이외의 방향에서 개스킷의 너비가 막히면 축 방향을 지정하여 최소값을 유지할 수 있습니다.// It will be 32px x 1px.
<Spacer axis="horizontal" size={32} />
결론
언뜻 보기에는 간격이 이상할 수도 있지만, 개인적으로는 일리가 있다고 생각하기 때문에 창고와 간격을 이용하여 괜찮은 가장자리 스타일을 얻자.💪
참고 문헌
https://www.joshwcomeau.com/react/modern-spacer-gif/
https://mxstbr.com/thoughts/margin/
Reference
이 문제에 관하여(React로 페이지 여백을 설정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/seya/how-to-style-margin-with-react-8m9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)