最初のスタイル-反応スタイルのコンポーネント
como su nombre lo indica mobile最初のものは、ロスM . Villes Primeroを引きます.そして、完全なtamestenエスタFilosofを再開します.
seは、非modoデdiseの外のque que tengaエヌcuenta、en primera instancia、un Dispositivo m ' veビルをrefiereします.
ラHoraデDiseは、ar、Podemos Optar por USARフレームワークcomo ;ブースター,テラウィンド😁), o hacerloデformaマニュアル.
エヌesta guは、Arte Nuna forma sencillaデencarar el diseを使用して、CSS格子、地域Yテンプレート、Nuna Vez que defintio La Maqueta de Nustro sitio、se Puede Hacer un dise Astro o o応答デforma muy sencilla.
コモエステに対する応答
パラComenzar Creamos un proyectoデ反応Y Luego
npm create-react-app first-mobile
npm install --save styled-components
EnuCutamos Nuestro proyecto :npm start
Lo Primero que Vamos Hacer Es Limirtical Los Archivos que no Utilizamos :styled-components.
エディトロスロスArchivosインデックス.JSのアプリ.J . P . que que no node de error , deen de quedarとして
アプリ.js
インデックス.js
Temas que vamos a ver :
React con Styled-Components
CSS Grid + Grid Area
コンディションコンテントコンポーネント
Ahora Vamos Escribir Los Componentes para Maquetar Nustro Sitio y se Va de Esta forma :
Pero Vamos Hacerlo Directamenteは、スタイルを整えました.
DontroデラCarpetaスタイル、creamos otro archivos llamadosモデル.ジェイ、ラ・アイディア・モデル.
Importamosスタイルのスタイルを整えられたコンポーネント、y generamos nuestroプライマー成分は、評価します.
como se puede ver , se crea un component ente(5月のscula),y de styluos undivision
スタイルは= ContieneトダスラスのHTMLのHTML.
Vamos A Criar el Stao de Componentes
import {createGlobalStyle} from 'styled-components'
export const GlobalStyle = createGlobalStyle`
//Estilos por defecto que trae React
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}
Ahora vamos輸入nuthemsコンポーネントenアプリケーション.J . Y .ルVAMOS ANAクラス名adicional que usaremosエヌfuturo.import styled from 'styled-components'
export const Container = styled.div`
width: 90%;
max-width: 1000px;
margin:20px auto;
`
export const Header = styled.header`
background: blue;
color: #fff;
`
export const Main = styled.main`
padding-left: 2%;
`
export const Sidebar = styled.aside`
background: orange;
min-height: 100px;
`
export const Widget = styled.div`
background: orchid;
height: 100px;
`
export const Footer = styled.footer`
padding: 20px;
background: maroon;
color: #fff;`
Si Vemos Nuestro proyecto実際の、ないtiene mucho estilo que digamos、単独のsigueエルorden jerarquiza de la html html.Este módulo nos permite estilizar nuestros componentes, se considera buenas practicas
definir a que componente le corresponde que estilo.
Lo mejor de styled-componentes, es que nos permite escribir nuestro CSS de toda la vida, pero también es posible combinarlo con framworks como Tailwind.
Otra ventaja de styled-componentes; es que nos genera clases automáticas, y es imposible que nuestras clases entren en conflicto entre ellas.
Vamos a comenzar con escribir los estilos globales para toda la app (lo que teníamos en index.css).
Para hacerlo de una forma mas ordenada, crearemos dentro de la carpeta src, una carpeta llamada styles.
Creamos un archivo llamado globalStyles.js, importamos createGlobalStyle para crear estilos globales.
Creamos un componente llamado GlobalStyle, donde entre bastics (esa comillas simples invertidas) pegamos el cógido de index.css (luego podemos borrar el index.css).
import { GlobalStyle } from "./styles/globalStyles";
import { Container, Header, Main, Sidebar, Widget, Footer } from "./styles/model";
function App() {
return (
<>
<GlobalStyle />
<Container className="contenedor">
<Header className="header">
<h1>Header</h1>
</Header>
<Main className="contenido">
<h2>Test</h2>
<p>Lorem asdasd</p>
</Main>
<Sidebar className="sidebar">Sidebar</Sidebar>
<Widget className="widget-1">Widget-1</Widget>
<Widget className="widget-2">Widget-2</Widget>
<Footer className="footer">Footer</Footer>
</Container>
</>
);
}
export default App;
Importamos este componente en el nivel mas alto de la app, en nuestro caso en App.js, debe quedar así:
CSSグリッド+グリッドエリア
ya tenemosウナgrilla、pero aun no un diseは、oを反応させます.
ドーンAdelce格子域.文学的なもの, Nos Permiite Definir Conn - Re Nuestroes Elementos HTML , Cada Componentte que Creamos , Le Asignamos un - rea , debe quedar as with
export const Container = styled.div`
width: 90%;
max-width: 1000px;
margin:20px auto;
display: grid;
grid-gap: 20px;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(4, auto);
`
Nota : enエルComponentteウィジェットpor medio de props , podemos asignarle un valor condicional ( Otra ventaja de styled component )Nuna Vez que Ya Tememos LASは、Refinidas、Tenemos que利用者格子テンプレート地域、パラEssenbir Nuestro Diseは、o、Esto Lo HacemosエヌArchivo GlobalStyleです.js
como se puede ver,nuestro tamplate,esta basado en 3 columnna(nuestra grilla),単独のdeebemos asignar nuestrosの構成要素は,al‐deレアque deseamos,siempre respetando las 3 columna para nuestro ejpraoである.
Ahora Lo que resta es Aplicar Los Diferenntesテンプレートパラシュートで降下する人Las diferentes解像度テンプレート、en nuestro caso、como estamos trabajando con la filosofは、移動の最初の、creamosラス賛辞reorデMenor A市長Resoluci Ten . Nです.
私たちは、EPAのUSAOSロスメディアの質問をします.
エヌCada Resoluiは、n、Aplicamos un格子テンプレート地域、Y Regibujamos Nuestro Dise Trap . Oです.
import styled from 'styled-components'
export const Container = styled.div`
width: 90%;
max-width: 1000px;
margin:20px auto;
display: grid;
grid-gap: 20px;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(4, auto);
`
export const Header = styled.header`
background: blue;
color: #fff;
grid-area: header; //área
& > h1 {
margin-left: 2%;
}
`
export const Main = styled.main`
padding-left: 2%;
grid-area: contenido; //área
`
export const Sidebar = styled.aside`
background: orange;
min-height: 100px;
grid-area: sidebar; //área
/*flexbox para acomodar elementos*/
display: flex;
align-items: center;
justify-content: center; //área
`
export const Widget = styled.div`
background: orchid;
height: 100px;
grid-area: ${props => props.className === "widget-1" ? "widget-1" : "widget-2"}; //área
/*flexbox para acomodar elementos*/
display: flex;
align-items: center;
justify-content: center;
`
export const Footer = styled.footer`
padding: 20px;
background: maroon;
color: #fff;
grid-area: footer; //área
`
エヌCoco、ソロCreamosラestructuraデnuestro sitio、pero una vez que rellenamos conn nuestro contenido、podemos alinear contenido con flexbox como se muestra en el el ejprao、en rereen、se puede available zel de toda la vida、oコンビナルコンオオートスframworks.Laアイデア校長は、armar una maqueta que海反応します、LuegoエルContenidoデCadaは、レア、se debe trabajar por separado、pero si seコンビナ・コンフレクボックス、oサブグリッド、ロス構成要素se Puede操作罪問題.
改正
グラシアス
ノーベル
Reference
この問題について(最初のスタイル-反応スタイルのコンポーネント), 我々は、より多くの情報をここで見つけました https://dev.to/norbertok/mobile-first-react-styled-components-css-grid-23p0テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol