찾다
웹 프론트엔드CSS 튜토리얼GSS 소개 : 그리드 스타일 시트

Introducing GSS: Grid Style Sheets

GSS 소개 : 그리드 스타일 시트 당신은 최근 HTML 및 CSS의 세계에서 그리드 스타일 시트 (GSS)에 대해 들어 보았을 것입니다. GSS는 CSS 레이아웃을 다시 상상하고 브라우저의 레이아웃 엔진을

CASSOWARY 제한 조건 솔버 를 활용하는 엔진으로 대체합니다. 그 말을 이해하지 못한 분들… 안녕하세요, 환영합니다!

GSS는 더 나은 미래를 약속합니다. GSS는 상대적인 포지셔닝 및 크기를 약속합니다. GSS는 한 줄의 코드로 다른 요소 내부를 중앙에 놓을 것을 약속합니다. GSS가 제공합니다. 문제는 다음과 같습니다. 어떻게? 이 기사에서는 GSS의 간단한 역사와 제공하는 기능에 대한 심도있는 개요를 다룰 것입니다. 또한 제약 조건 기반 레이아웃, Cassowary Constraint 알고리즘에 대한 GSS를 살펴보고 GSS 설치 및 사용 프로세스를 안내합니다. w3c 나 브라우저가 따라 잡을 때까지 기다리지 않는 사람들은 GSS 인 미스터리를 설명하는 동안 거기에 매달려 세심한주의를 기울일 것을 촉구합니다. 그 메모에서, 작은 역사부터 시작합시다. 키 테이크 아웃 GSS를 사용하기 위해서는 zithub를 통해 zip 파일로 Github을 통해 다운로드하거나 다운로드해야하며, 태그에 type = text/gss를 추가하여 GSS 스타일 시트를로드 할 수 있습니다. 간단한 역사

GSS는 Dan Tocchini와 함께 창립자이자 CEO로 그리드를 창출 한 것입니다. 이는 그리드 기반 스타일 시트를 그리드 스타일 시트라고하는 이유에 대한 답변입니다. 웹 개발자와 프론트 엔드 기술 간의 전쟁은 웹에 아이디어를 제시하는 것이 몇 년 동안 진행되었습니다. CSS는 지난 10 년 동안 승리를 거두었습니다. 그러나 시간이 지남에 따라 진화하지 않은 도구로 점점 더 복잡한 사용자 인터페이스를 구축하는 것은 웹 개발자가 정기적으로 수행 할 것으로 예상되는 것입니다. 예를 들어, CSS를 사용하여 요소를 수직으로 중심으로하는 것은 특히 가변적 인 높이 요소가있는 가장 간단한 작업이 아닙니다. Flexbox는 가장 최근의 솔루션 중 하나이지만 작은 변화조차도 HTML 컨텐츠와 CSS 프레젠테이션 내에서 깊이 들어가서 변경해야합니다.

이제 GSS가 경기장을 타야 할 때입니다. GSS는 이러한 문제와 더 많은 문제를 해결합니다. 개발자가 10 년 넘게 겪었던 문제.

기본적으로 GSS는 CSS Preprocessor 및 JavaScript 런타임으로 Cassowary.js를 이용합니다. Cassowary.js는 아직 모르는 사람들은 Apple이 Cocoa Autolayout에서 사용하는 JavaScript 포트입니다.

GSS와 Cassowary는 모두 구속 조건 프로그래밍에 기반을 두므로 CSS와 같은 선언 언어를 강화하는 데 이상적입니다. 제약 프로그래밍은 웹 개발자가“무엇”을 선언하고“어떻게”를 수학 솔버까지 맡기는 것에 관심이있는 패러다임입니다.

제약 프로그래밍은 구현이 아닌 의도에 중점을 둡니다 이제 배경 정보를 설정 했으므로 GSS가 제공하는 기능으로 넘어 갑시다. GSS 개요 CSS의 가장 큰 문제 중 하나는 상대성입니다. CSS 요소는 패딩, 높이, 너비, 플로트, 마진, 경계, 윤곽선 등의 끝없는 속성 목록을 기대할 수 있지만이 정보는 페이지의 다른 요소를 참조하여 요소가 어디에 있는지 알려주지 않습니다 ( 또는 전체 페이지조차도). 끝없는 목록은 또한 다른 화면 크기로 요소가 어디에 표시 될지에 대한 답을 얻지 못합니다.

이것은 우리에게 GSS의 첫 번째 특징을 가져옵니다 : 당신은 레이아웃을 원하는 것을 정의합니다. 셀 수없이 많은 시간의 시행 착오를 소비하는 시대는 지났으며, 레이아웃이 어떻게 구성되어야하는지 전략을 세웠습니다.

우리는 GSS가 Cassowary.js를 활용한다고 이미 논의 했으므로 GSS의 또 다른 훌륭한 기능은 다음과 같습니다. 요소는 한 줄의 코드로 다른 하나를 중심으로 할 수 있습니다. 이것은 많은 해결 방법을 불필요하고 과거의 것들을 만듭니다.

예를 들어 사이트 페이지의 오른쪽에있는 제목과 함께 수직으로 가입 버튼을 추가하려면 다음 코드를 사용합니다.

또 다른 특징 : GSS는 플로트, 테이블 셀, 클리어 픽스 및 수평/수직 중심을 사용하여 쓸모 없게 만듭니다. 플로트 자체가 플로트가 응용 프로그램 레이아웃에 이상적이지 않다고 말하기 때문에 플로트 인 위험한 함정에 대한 작별 인사.

“웹 사이트가 간단한 문서에서 복잡한 대화식 응용 프로그램, 문서 레이아웃을위한 도구로 발전함에 따라 플로트는 반드시 애플리케이션 레이아웃에 적합하지는 않았습니다.”

- W3C 그리드 레이아웃 모듈 (작업 초안)

CSS 기능은 어떻습니까! 중요합니까? GSS의 네 번째 특징은 비슷한 일을합니다. GSS는 제약 계층을 사용하여 제약 조건을 강점으로 우선 순위로 삼습니다. 우리는 여기에서 4 가지 내장 강도 수준에 대해 이야기하고 있습니다 :

! 약한 ! 중간

! strong ! 요구

는 필요합니다! 요구 사항은
.subscribe-button[right] == <span>::window[width];
</span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
특수

강도이며 제약 조건이 유지되고 그렇지 않으면 모든 것이 끊어집니다. 신중하고 드물게 사용하는 것이 좋습니다 강도 수준은 목록을 낮추고 더 강한 제약 조건은 실행 중에 우선 순위가 높아집니다. 예를 들어 보겠습니다 :

당신은 지금까지 그것을 만들었습니다. 지금 제약 기반 레이아웃을 살펴 보겠습니다.

제약 조건 기반 레이아웃 의 gss 제약 조건은 기본적으로 유지되거나 보유하지 않을 수도있는 둘 이상의 변수 간의 관계입니다. 요소의 모든 숫자 특성은 제한 될 수 있습니다. 예는 다음과 같습니다.

.subscribe-button[right] == <span>::window[width];
</span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
CASSOWARY 제약 조건 알고리즘 소개

GSS는 Badros, Borning and Stuckey, 1999에 의한 Cassowary Linear Arithmetic 제약 조건 해결 알고리즘의 JavaScript 포트 (cassowary.js)를 사용합니다. 알고리즘은 사용자가 자연 언어로 제공 한 입력 제약 조건에 따라 레이아웃에 대한 최적의 솔루션을 찾습니다.

사용자는 입력 제약 조건이 서로 모순되지 않도록 할 필요가 없습니다. 사실, 이것은 대변 알고리즘의 본질입니다. 제약 조건을 점진적으로 평가하고 최적의 솔루션을 자동으로 발견합니다. 전환 알고리즘의 계산 제한
#light[years] == <span>50 !weak;
</span>#light[years] == <span>20 !medium;
</span>#light[years] == <span>35 !strong;
</span>
<span>/* #light[years] will hold the value 35 */</span>
GSS 뒤에있는 제약 조건 솔버를 대변 알고리즘이라고합니다. 이 알고리즘은 선형 (즉, y = mx c 형식) 인 제약 조건 만 계산할 수 있습니다. 기본 연산자 (, -, *, /)는 알고리즘에 의해 지원됩니다. 두 가지 (또는 그 이상) 제한된 변수의 곱셈과 나누기는 선형이 아니므로 오류가 발생합니다.

.

GSS 설치 클라이언트 측 설치의 경우 Bower를 통해 설치하십시오 :

그런 다음이 코드를 Markup의 섹션에 추가하십시오

zithub를 통해 버전 2.0.0을 zip 파일로 다운로드 할 수도 있습니다.GSS를 설치 한 후에는 태그에 type = text/gss를 추가하여 .gss 스타일 시트를로드하십시오.

또는

일단 모든 것을 가동하고 실행되면 몇 가지 코드 예제와 함께 팔로우를 시작할 수 있습니다. 아래에서는 초보자의 튜토리얼을 살펴 보겠습니다 a gss 초보자의 튜토리얼
.subscribe-button[right] == <span>::window[width];
</span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
제가 작성할 예제는 CodePen을 통해 표시되지만 표준 HTML 문서와 같은 자습서를 살펴 보겠습니다. 먼저 GSS 엔진 스크립트를 추가하기 위해 HTML에 다음 코드 줄을 추가하겠습니다.

코드 펜 호스팅 버전의 파일을 사용하지만 여기에서는 CDN 호스팅 버전을 찾을 수 있습니다. 다음으로 GSS 참조 스크립트 (위에 추가 한 줄) 아래에 다음 코드를 추가하여 GSS 문서 개체를 전달합니다.

원하는 경우, 엔진 스크립트 이후에 포함 된 별도의 JavaScript 파일에 배치 할 수 있습니다. 예 1 : 수직으로 요소를 중심으로
#light[years] == <span>50 !weak;
</span>#light[years] == <span>20 !medium;
</span>#light[years] == <span>35 !strong;
</span>
<span>/* #light[years] will hold the value 35 */</span>
DIV를 생성하고 GSS 레이아웃에서 H2 태그로 일부 텍스트를 동봉하고 html에 추가합니다 :

기본 스타일을 추가 한 후 레이아웃을 만들기 위해 GSS를 추가 할 수 있습니다. 이것은 재미가 시작되는 곳입니다.

내 목표는 크기에도 불구하고 뷰포트 내부의 .foo 요소를 수직으로 중심하고 요소의 크기가 변경 되더라도 동일한 정렬을 유지하는 것입니다. 이 목표를 달성하기 위해 적용 할 제약 조건은 다음과 같습니다.

<:> :: Window Selector를 사용하여 브라우저에서 페이지의 보이는 부분을 중앙에 중앙을 중앙으로 사용하십시오. use :: [INTRINSIC-HEIGHT] 속성은 상대 너비를 결정하는 데 사용될 요소의 높이의 상대 값을 얻기위한 속성.

먼저, 텍스트/gss로 설정된 유형 속성을 사용하여 html에

그리고 그게 전부입니다. 요소는 이제 GSS를 사용하여 수직으로 (동적 높이) 중앙에 있습니다. 아래는 데모입니다 : Codepen에서 sitepoint (@SitePoint)에 의해 GSS로 펜 수직 센터링을 참조하십시오. 전체 화면 데모를 시도하고 브라우저 크기를 수직으로 조정하여 요소가 모든 창 크기에 중앙에있는 상태를 확인하십시오. 예제 2 : 동적으로 변화하는 창 너비를 기반으로 한 요소 회전
p[line-height] >= <span>10;
</span>p[line-height] ::window[height] / 20;
이 다음 예제에서는 간단한 색의 정사각형 모양을 만들고 동적으로 회전하도록하겠습니다. 먼저 문서의 섹션에 다음 줄의 코드를 추가하여 GSS를 부팅하겠습니다.
.subscribe-button[right] == <span>::window[width];
</span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
파일의 올바른 위치를 가리려면 위의 코드를 편집해야합니다. 여기서 worker.js 파일을 가져오고 gss.js 파일을 여기에서 얻을 수 있습니다.

참고 : 일부 버그로 인해 위의 파일 경로는이 작업을 수행하기 위해 2.0.0 버전의 GSS를 가리 킵니다. 이제 html에 이것을 추가하여 정사각형 모양을 만들어 봅시다 : .

이제 HTML로 돌아가서 GSS 제약 조건을 추가하겠습니다. GSS를 사용하면 단순히 의도를 제시하고 수학 계산을 알고리즘까지 맡깁니다. 이 예에서는 창의 너비가 동적으로 변할 때 요소에서 회전이 생성되는 요소와 창 사이에 제약 조건을 생성하려고합니다. 이 목표를 달성하기 위해 적용 할 제약 조건은 다음과 같습니다. <:> :: 창 [중 사용 :: Window [width] rotate-z로 제약 조건을 생성하여 z 축 주변의 요소에 회전 효과가 생성됩니다. 여기서 :: Window [width]에서받은 값은 회전 정도를 나타냅니다.

첫 번째 예에서와 같이 텍스트/gss로 설정된 유형으로 HTML에 스타일 블록을 추가합니다. 추가 할 GSS를 정의하려면 스타일 블록이 필요하다는 것을 기억하십시오.

스타일 태그 안에 다음 코드를 추가하여 GSS 제약 조건을 사용하여 스퀘어 박스를 화면과 연결하겠습니다.
#light[years] == <span>50 !weak;
</span>#light[years] == <span>20 !medium;
</span>#light[years] == <span>35 !strong;
</span>
<span>/* #light[years] will hold the value 35 */</span>
그리고 그로 인해 끝났습니다. 최종 Codepen 데모를 확인하십시오 : Codepen에서 sitepoint (@sitepoint)별로 GSS를 사용하여 펜 동적 회전을 참조하십시오. 전체 화면 데모를 보면 창 크기 조정을 해보십시오. 창의 너비가 변경되면 제곱 상자가 회전 위치를 변경합니다. gss의 미래 GSS의 미래는 유망 해 보입니다. 이제 우리는 프론트 엔드 기술로 나아갔습니다. 스타일 시트 라이브러리 전체를 찢기 전에 소규모 프로토 타입으로 연습 할 것을 제안합니다. 내가 여기서 다루는 것은 GSS로 할 수있는 일의 작은 샘플이지만,이 튜토리얼이 당신을 시작하는 데 도움이되고 유익한 정보를 얻었 으면 좋겠다.

. 아직 GSS를 사용 했습니까? 당신의 경험은 어땠습니까? 댓글 섹션에서 알려주세요.

GSS (그리드 스타일 시트)에 대한 자주 묻는 질문

gss (그리드 스타일 시트) 란 ​​무엇입니까?

gss 또는 그리드 스타일 시트는 웹 개발자와 디자이너를위한 강력한 도구입니다. 단순하고 직관적 인 구문을 사용하여 반응 형이며 유연한 레이아웃을 만들 수있는 제약 기반 레이아웃 엔진입니다. GSS는 제약 조건의 개념을 도입하여 기존 CSS 모델을 확장하여 요소 간의 관계를 정의하고보다 정확하고 유연한 방식으로 동작을 제어 할 수 있습니다.

GSS는 기존 CSS와 어떻게 다릅니 까?

. 전통적인 CSS는 레이아웃에 박스 모델을 사용하며 복잡한 레이아웃을 만들 때 제한적이고 복잡 할 수 있습니다. 반면에 GSS는 제약 기반 모델을 사용하여 더 많은 유연성과 정밀도를 허용합니다. GSS를 사용하면 요소 간의 관계를 정의하고보다 직관적 인 방식으로 동작을 제어 할 수 있습니다.

GSS 사용을 시작하는 방법은 무엇입니까?

GSS 사용을 시작하려면 GSS 엔진을 포함시켜야합니다. 프로젝트에서. 이는 공식 웹 사이트에서 GSS 라이브러리를 다운로드하거나 NPM과 같은 패키지 관리자를 사용하여 수행 할 수 있습니다. GSS 엔진이 프로젝트에 포함되면 CSS 파일에 GSS 코드를 작성하기 시작할 수 있습니다.

기존 CSS 코드와 함께 GSS를 사용할 수 있습니까?

예, GSS는 작동하도록 설계되었습니다. 전통적인 CSS와 함께. 즉, 기존 CSS 코드를 다시 작성하지 않고도 프로젝트에 GSS를 점차적으로 도입 할 수 있습니다. GSS 코드는 별도의 파일로 작성되거나 일반 CSS 코드와 혼합 될 수 있습니다.

GSS를 사용하면 어떤 이점이 있습니까?

GSS는 기존 CSS보다 몇 가지 이점을 제공합니다. 레이아웃을보다 정확하게 제어 할 수 있으므로 복잡하고 반응 형 디자인을보다 쉽게 ​​만들 수 있습니다. GSS는 또한 코드를 단순화하여 읽고 유지하기가 더 쉬워집니다. 또한 GSS는 라이브 편집을 지원합니다. 즉, 코드에 따라 실시간 변경 사항을 볼 수 있습니다.

는 모든 브라우저에서 지원되는 GSS입니까?

GSS는 JavaScript를 사용하여 제약 조건 기반 레이아웃을 구현합니다. 엔진은 JavaScript를 지원하는 최신 브라우저에서 작동해야합니다. 그러나 새로운 기술과 마찬가지로 다양한 브라우저에서 디자인을 테스트하여 호환성을 보장하는 것이 좋습니다.

GSS를 배울 수있는 리소스가 있습니까?

예, 여러 가지가 있습니다. GS를 배우는 데 사용할 수있는 리소스. 공식 GSS 웹 사이트는 포괄적 인 가이드 및 문서를 제공합니다. GSS를 자세히 다루는 몇 가지 온라인 자습서와 코스도 있습니다.

GSS는 모바일 웹 개발에 사용할 수 있습니까?

예, GSS는 모바일 웹 개발을위한 훌륭한 도구입니다. 제약 기반 레이아웃 엔진을 사용하면 다양한 화면 크기와 방향에 적응하는 반응 형 디자인이 가능합니다. 이를 통해 다른 장치에서 일관된 사용자 경험을보다 쉽게 ​​만들 수 있습니다.

는 GSS 오픈 소스입니까?

예, GSS는 오픈 소스 프로젝트입니다. 이것은 누구나 개발에 기여하여 프로젝트에서 무료로 사용할 수 있음을 의미합니다. GSS의 소스 코드는 Github에서 사용할 수 있습니다.

GSS의 미래는 무엇입니까?

비교적 새로운 기술로서 GSS는 여전히 진화하고 있습니다. 그러나 강력한 기능과 제약 기반 레이아웃에 대한 관심이 높아짐에 따라 유망한 미래가 있음을 시사합니다. 더 많은 개발자가 GSS를 채택함에 따라이 혁신적인 기술에 대한 더 많은 리소스, 도구 및 커뮤니티 지원을 볼 수 있습니다.

GSS (Grid Style Sheets)는 CSS 전 처리기 및 JavaScript 런타임으로 브라우저의 레이아웃 엔진을 캐시 러리 제한 솔버로 대체하고 유망한 상대적 위치 및 크기 조정 및 한 줄의 코드로 다른 요소를 중심으로하는 능력

GSS는 구현보다는 의도에 중점을 둔 제약 프로그래밍을 사용하여 개발자가“무엇”을 선언하고“어떻게”를 수학 솔버로 남겨 두도록 할 수 있습니다. gss는 플로트, 테이블 셀, 클리어 픽스 및 수평/수직 중심을 사용하여 구속력있는 계층 구조를 사용하여 강도로 제약 조건을 우선 순위로 삼고 4 가지 내장 강도 레벨을 제공합니다 :! 약점,!

gss는 캐시 니 선형 산술 제약 조건 해결 알고리즘을 사용하여 사용자가 자연 언어로 제공 한 입력 제약 조건을 기반으로 한 레이아웃에 대한 최적의 솔루션을 찾아 제약 조건을 점진적으로 평가하고 최적 솔루션을 자동으로 발견합니다.

GSS를 사용하기 위해서는 zithub를 통해 zip 파일로 Github을 통해 다운로드하거나 다운로드해야하며, 태그에 type = text/gss를 추가하여 GSS 스타일 시트를로드 할 수 있습니다.
    간단한 역사
  • GSS는 Dan Tocchini와 함께 창립자이자 CEO로 그리드를 창출 한 것입니다. 이는 그리드 기반 스타일 시트를 그리드 스타일 시트라고하는 이유에 대한 답변입니다. 웹 개발자와 프론트 엔드 기술 간의 전쟁은 웹에 아이디어를 제시하는 것이 몇 년 동안 진행되었습니다. CSS는 지난 10 년 동안 승리를 거두었습니다. 그러나 시간이 지남에 따라 진화하지 않은 도구로 점점 더 복잡한 사용자 인터페이스를 구축하는 것은 웹 개발자가 정기적으로 수행 할 것으로 예상되는 것입니다. 예를 들어, CSS를 사용하여 요소를 수직으로 중심으로하는 것은 특히 가변적 인 높이 요소가있는 가장 간단한 작업이 아닙니다. Flexbox는 가장 최근의 솔루션 중 하나이지만 작은 변화조차도 HTML 컨텐츠와 CSS 프레젠테이션 내에서 깊이 들어가서 변경해야합니다.
  • 이제 GSS가 경기장을 타야 할 때입니다. GSS는 이러한 문제와 더 많은 문제를 해결합니다. 개발자가 10 년 넘게 겪었던 문제.
기본적으로 GSS는 CSS Preprocessor 및 JavaScript 런타임으로 Cassowary.js를 이용합니다. Cassowary.js는 아직 모르는 사람들은 Apple이 Cocoa Autolayout에서 사용하는 JavaScript 포트입니다.

GSS와 Cassowary는 모두 구속 조건 프로그래밍에 기반을 두므로 CSS와 같은 선언 언어를 강화하는 데 이상적입니다. 제약 프로그래밍은 웹 개발자가“무엇”을 선언하고“어떻게”를 수학 솔버까지 맡기는 것에 관심이있는 패러다임입니다.

제약 프로그래밍은 구현이 아닌 의도에 중점을 둡니다

이제 배경 정보를 설정 했으므로 GSS가 제공하는 기능으로 넘어 갑시다. GSS 개요 CSS의 가장 큰 문제 중 하나는 상대성입니다. CSS 요소는 패딩, 높이, 너비, 플로트, 마진, 경계, 윤곽선 등의 끝없는 속성 목록을 기대할 수 있지만이 정보는 페이지의 다른 요소를 참조하여 요소가 어디에 있는지 알려주지 않습니다 ( 또는 전체 페이지조차도). 끝없는 목록은 또한 다른 화면 크기로 요소가 어디에 표시 될지에 대한 답을 얻지 못합니다.
이것은 우리에게 GSS의 첫 번째 특징을 가져옵니다 : 당신은 레이아웃을 원하는 것을 정의합니다. 셀 수없이 많은 시간의 시행 착오를 소비하는 시대는 지났으며, 레이아웃이 어떻게 구성되어야하는지 전략을 세웠습니다.

우리는 GSS가 Cassowary.js를 활용한다고 이미 논의 했으므로 GSS의 또 다른 훌륭한 기능은 다음과 같습니다. 요소는 한 줄의 코드로 다른 하나를 중심으로 할 수 있습니다. 이것은 많은 해결 방법을 불필요하고 과거의 것들을 만듭니다.

예를 들어 사이트 페이지의 오른쪽에있는 제목과 함께 수직으로 가입 버튼을 추가하려면 다음 코드를 사용합니다.
또 다른 특징 : GSS는 플로트, 테이블 셀, 클리어 픽스 및 수평/수직 중심을 사용하여 쓸모 없게 만듭니다. 플로트 자체가 플로트가 응용 프로그램 레이아웃에 이상적이지 않다고 말하기 때문에 플로트 인 위험한 함정에 대한 작별 인사.

“웹 사이트가 간단한 문서에서 복잡한 대화식 응용 프로그램, 문서 레이아웃을위한 도구로 발전함에 따라 플로트는 반드시 애플리케이션 레이아웃에 적합하지는 않았습니다.”

- W3C 그리드 레이아웃 모듈 (작업 초안)

CSS 기능은 어떻습니까! 중요합니까? GSS의 네 번째 특징은 비슷한 일을합니다. GSS는 제약 계층을 사용하여 제약 조건을 강점으로 우선 순위로 삼습니다. 우리는 여기에서 4 가지 내장 강도 수준에 대해 이야기하고 있습니다 :

! 약한 ! 중간

! strong ! 요구

는 필요합니다! 요구 사항은

특수

강도이며 제약 조건이 유지되고 그렇지 않으면 모든 것이 끊어집니다. 신중하고 드물게 사용하는 것이 좋습니다 강도 수준은 목록을 낮추고 더 강한 제약 조건은 실행 중에 우선 순위가 높아집니다. 예를 들어 보겠습니다 :

당신은 지금까지 그것을 만들었습니다. 지금 제약 기반 레이아웃을 살펴 보겠습니다.
.subscribe-button[right] == <span>::window[width];
</span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
제약 조건 기반 레이아웃 의 gss 제약 조건은 기본적으로 유지되거나 보유하지 않을 수도있는 둘 이상의 변수 간의 관계입니다. 요소의 모든 숫자 특성은 제한 될 수 있습니다. 예는 다음과 같습니다.

p를 선택기 라고합니다 라인-하이트는 gss가

에 대한 값을 계산하는 속성입니다. []는 속성 에 액세스하는 데 사용됩니다 >> = 불평등 제약을 정의하십시오 10 및 20은 픽셀의 숫자 값입니다

위에 주어진 예에서 두 제약 조건은 모두 유효합니다. 다음은 유지되지 않는 제약 조건의 예입니다.

#light[years] == <span>50 !weak;
</span>#light[years] == <span>20 !medium;
</span>#light[years] == <span>35 !strong;
</span>
<span>/* #light[years] will hold the value 35 */</span>
처음에는 요소 요소와 요소 모두 높이가 150px로 제한됩니다. 세 번째 줄에서 두 요소의 합은 225px입니다. 따라서 두 요소의 제약 조건 중 하나가 유지되지 않습니다.
    gss의 선택기 GSS의 선택기는 HTML 요소 그룹의 쿼리이며 궁극적으로 제약 조건에 의해 영향을받는 요소를 결정하는 데 사용됩니다. 셀렉터는 제약 조건을 적용하기 전에 DOM의 요소를 선택하고 관찰해야하기 때문에 중요합니다. 다음 기본 선택기는 GSS에 의해 지원됩니다
  • gss의 규칙 세트 규칙 세트를 사용하면 단일 선택기에 대한 여러 제약 조건을 정의 할 수 있습니다. 당신은 그들을 중첩하고 그들에게도 CSS 속성을 사용할 수 있습니다.
  • 이 중첩 규칙 세트 :
  • 는 다음과 같습니다
  • gss의 특성 위의 예에서 이미 속성을 다루었지만 조금 더 자세히 살펴 보겠습니다. GSS에서 속성은 요소에 속하는 변수입니다. CSS에서 알려진 속성을 사용하면 해당 GSS 계산 값이 요소의 인라인 스타일로 할당됩니다. <:> 이와 같은 것 :
  • 는 다음과 같습니다
  • CASSOWARY 제약 조건 알고리즘 소개
  • GSS는 Badros, Borning and Stuckey, 1999에 의한 Cassowary Linear Arithmetic 제약 조건 해결 알고리즘의 JavaScript 포트 (cassowary.js)를 사용합니다. 알고리즘은 사용자가 자연 언어로 제공 한 입력 제약 조건에 따라 레이아웃에 대한 최적의 솔루션을 찾습니다.
  • 사용자는 입력 제약 조건이 서로 모순되지 않도록 할 필요가 없습니다. 사실, 이것은 대변 알고리즘의 본질입니다. 제약 조건을 점진적으로 평가하고 최적의 솔루션을 자동으로 발견합니다. 전환 알고리즘의 계산 제한

    GSS 뒤에있는 제약 조건 솔버를 대변 알고리즘이라고합니다. 이 알고리즘은 선형 (즉, y = mx c 형식) 인 제약 조건 만 계산할 수 있습니다. 기본 연산자 (, -, *, /)는 알고리즘에 의해 지원됩니다. 두 가지 (또는 그 이상) 제한된 변수의 곱셈과 나누기는 선형이 아니므로 오류가 발생합니다.

    .

    GSS 설치 클라이언트 측 설치의 경우 Bower를 통해 설치하십시오 :

    그런 다음이 코드를 Markup의 섹션에 추가하십시오
    .subscribe-button[right] == <span>::window[width];
    </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
    zithub를 통해 버전 2.0.0을 zip 파일로 다운로드 할 수도 있습니다. GSS를 설치 한 후에는 태그에 type = text/gss를 추가하여 .gss 스타일 시트를로드하십시오.

    또는

    일단 모든 것을 가동하고 실행되면 몇 가지 코드 예제와 함께 팔로우를 시작할 수 있습니다. 아래에서는 초보자의 튜토리얼을 살펴 보겠습니다 a gss 초보자의 튜토리얼

    제가 작성할 예제는 CodePen을 통해 표시되지만 표준 HTML 문서와 같은 자습서를 살펴 보겠습니다. 먼저 GSS 엔진 스크립트를 추가하기 위해 HTML에 다음 코드 줄을 추가하겠습니다.

    코드 펜 호스팅 버전의 파일을 사용하지만 여기에서는 CDN 호스팅 버전을 찾을 수 있습니다. 다음으로 GSS 참조 스크립트 (위에 추가 한 줄) 아래에 다음 코드를 추가하여 GSS 문서 개체를 전달합니다.
    #light[years] == <span>50 !weak;
    </span>#light[years] == <span>20 !medium;
    </span>#light[years] == <span>35 !strong;
    </span>
    <span>/* #light[years] will hold the value 35 */</span>
    원하는 경우, 엔진 스크립트 이후에 포함 된 별도의 JavaScript 파일에 배치 할 수 있습니다. 예 1 : 수직으로 요소를 중심으로

    DIV를 생성하고 GSS 레이아웃에서 H2 태그로 일부 텍스트를 동봉하고 html에 추가합니다 :

    기본 스타일을 추가 한 후 레이아웃을 만들기 위해 GSS를 추가 할 수 있습니다. 이것은 재미가 시작되는 곳입니다.
    p[line-height] >= <span>10;
    </span>p[line-height] ::window[height] / 20;
    내 목표는 크기에도 불구하고 뷰포트 내부의 .foo 요소를 수직으로 중심하고 요소의 크기가 변경 되더라도 동일한 정렬을 유지하는 것입니다. 이 목표를 달성하기 위해 적용 할 제약 조건은 다음과 같습니다.

    <:> :: Window Selector를 사용하여 브라우저에서 페이지의 보이는 부분을 중앙에 중앙을 중앙으로 사용하십시오. use :: [INTRINSIC-HEIGHT] 속성은 상대 너비를 결정하는 데 사용될 요소의 높이의 상대 값을 얻기위한 속성.

    먼저, 텍스트/gss로 설정된 유형 속성을 사용하여 html에

위 내용은 GSS 소개 : 그리드 스타일 시트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
@keyframes vs CSS 전환 : 차이점은 무엇입니까?@keyframes vs CSS 전환 : 차이점은 무엇입니까?May 14, 2025 am 12:01 AM

@keyframesandcsstransitionsdifferincomplexity :@keyframesallowsfordeTailEdanimationsections, whilecsStransitsimplestateChanges.UsecsStransitionSforHovereffects likeToncolorChanges 및@keyframesforintricateanimationspinners.

정적 사이트 컨텐츠 관리에 페이지 CMS 사용정적 사이트 컨텐츠 관리에 페이지 CMS 사용May 13, 2025 am 09:24 AM

알고 있습니다. 컨텐츠 관리 시스템 옵션이 수많은 톤을 사용할 수 있으며, 여러 번 테스트했지만 실제로는 아무도 없었습니다. y ' 이상한 가격 책정 모델, 어려운 커스터마이즈, 일부는 전체가되었습니다.

HTML의 CSS 파일 연결에 대한 궁극적 인 안내서HTML의 CSS 파일 연결에 대한 궁극적 인 안내서May 13, 2025 am 12:02 AM

HTML의 일부에서 요소를 사용하여 CSS 파일을 HTML에 연결하면 달성 할 수 있습니다. 1) 태그를 사용하여 로컬 CSS 파일을 연결하십시오. 2) 여러 개의 태그를 추가하여 여러 CSS 파일을 구현할 수 있습니다. 3) 외부 CSS 파일은 다음과 같은 절대 URL 링크를 사용합니다. 4) 파일 경로 및 CSS 파일로드 순서의 올바른 사용을 확인하고 성능을 최적화하면 CSS Preprocessor를 사용하여 파일을 병합 할 수 있습니다.

CSS Flexbox vs Grid : 포괄적 인 검토CSS Flexbox vs Grid : 포괄적 인 검토May 12, 2025 am 12:01 AM

Flexbox 또는 그리드 선택은 레이아웃 요구 사항에 따라 다릅니다. 1) Flexbox는 탐색 표시 줄과 같은 1 차원 레이아웃에 적합합니다. 2) 그리드는 매거진 레이아웃과 같은 2 차원 레이아웃에 적합합니다. 두 사람은 프로젝트에 사용하여 레이아웃 효과를 향상시킬 수 있습니다.

CSS 파일 포함 방법 : 방법 및 모범 사례CSS 파일 포함 방법 : 방법 및 모범 사례May 11, 2025 am 12:02 AM

CSS 파일을 포함시키는 가장 좋은 방법은 태그를 사용하여 HTML 부분에 외부 CSS 파일을 소개하는 것입니다. 1. 태그를 사용하여 외부 CSS 파일을 소개합니다. 2. 작은 조정의 경우 인라인 CSS를 사용할 수 있지만주의해서 사용해야합니다. 3. 대규모 프로젝트는 SASS와 같은 CSS 전 처리기를 사용하여 @Import를 통해 다른 CSS 파일을 가져올 수 있습니다. 4. 성능의 경우 CSS 파일을 병합하고 CDN을 사용해야하고 CSSNANO와 같은 도구를 사용하여 압축해야합니다.

Flexbox vs Grid : 둘 다 배워야합니까?Flexbox vs Grid : 둘 다 배워야합니까?May 10, 2025 am 12:01 AM

예, YoushouldLearnbothflexBoxAndgrid.1) FlexBoxisIdealforone-Dimensional, FlexiblelayoutSlikenavigationMenus.2) GridexCelsIntwo-Dimensional, ComplexDesignsSuchasmagazinElayouts.3) 결합 된 BothenSlayoutFlexibility 및 HeartingFortructur

궤도 역학 (또는 CSS 키 프레임 애니메이션을 최적화하는 방법)궤도 역학 (또는 CSS 키 프레임 애니메이션을 최적화하는 방법)May 09, 2025 am 09:57 AM

자신의 코드를 리팩터링하는 것은 어떤 모습입니까? John Rhea는 자신이 쓴 오래된 CSS 애니메이션을 선택하고 최적화하는 사고 과정을 살펴 봅니다.

CSS 애니메이션 : 만들기가 어렵습니까?CSS 애니메이션 : 만들기가 어렵습니까?May 09, 2025 am 12:03 AM

cssanimationsarenherinly에 hardbutreepracticenderstandingofcsspropertiesandtimingflestions.1) startsimpleants withsimpleatslikeScalingabuttononHoverusingKeyframes.2) useAsingfuctionslikecubic-bezierfornateffects, 그러한 분위기, 3)

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구