Стилізація за Допомогою CSS файлу на Практиці
Давайте попрактикуємось у створенні компонента картки, що складається з трьох компонентів. Ми прагнемо використати різні компоненти та застосувати стилі, щоб зробити її візуально привабливою. Ми будемо діяти крок за кроком, щоб досягти цього.
Перш ніж ми почнемо, давайте вивчимо функціональність спеціального пропса під назвою children
, який дозволяє нам передавати компоненти, елементи або текст як дочірні елементи. Ось як це працює:
jsx9123456const App = () => (<Container><Notification /><Message /></Container>);
Компонент Container
містить проп children
, який міститиме компоненти Notification
та Message
. Будь-який вміст, розміщений між відкриваючим та закриваючим тегами компонента Container
, буде розглядатися як його дочірні елементи.
Компонент Container
має наступний код:
jsx9123const Container = (props) => (<div>{props.children}</div>);
Примітка
Прості пропси визначаються явно, і доступ до них здійснюється за їхніми конкретними іменами у компоненті. З іншого боку, проп
children
дозволяє нам передавати компоненти, елементи або текст як дочірні до компонента без явного визначення імені пропу. Він представляє вміст між відкриваючим та закриваючим тегами компонента.
Ми можемо починати.
Крок 1
Створюємо всі необхідні компоненти: Container
, UserImage
та UserInfo
. Створимо весь додаток, включивши ці компоненти в компонент App
.
Приклад:
jsx9912345678910111213141516171819202122232425262728293031323334353637// Container component to hold UserImage and UserInfoconst Container = (props) => (<div>{props.children}</div>);// UserImage component to display user imageconst UserImage = () => (<imgclassName="image"src="https://codefinity-content-media.s3.eu-west-1.amazonaws.com/code-1/react/styling/user.png"alt="user"width={200}/>);// UserInfo component to display user informationconst UserInfo = (props) => (<div><p><span>Name:</span> {props.name}</p><p><span>Age:</span> {props.age}</p><p><span>Occupation:</span> {props.occupation}</p></div>);// App component that combines Container, UserImage, and UserInfoconst App = () => (<Container><UserImage /><UserInfo name="Michelle" age="36 years" occupation="Accountant" /></Container>);
Крок 2
Переконайтеся, що всі необхідні імена класів додано до елементів за допомогою атрибуту className
.
jsx991234567891011121314151617181920212223242526272829303132333435// Container component to hold UserImage and UserInfoconst Container = (props) => <div className="container">{props.children}</div>;// UserImage component to display user imageconst UserImage = () => (<imgclassName="image"src="https://codefinity-content-media.s3.eu-west-1.amazonaws.com/code-1/react/styling/user.png"alt="user"width={200}/>);// UserInfo component to display user informationconst UserInfo = (props) => (<div className="description"><p className="text"><span className="label">Name:</span> {props.name}</p><p className="text"><span className="label">Age:</span> {props.age}</p><p className="text"><span className="label">Occupation:</span> {props.occupation}</p></div>);// App component that combines Container, UserImage, and UserInfoconst App = () => (<Container><UserImage /><UserInfo name="Michelle" age="36 years" occupation="Accountant" /></Container>);
Крок 3
Імпортуємо файл CSS у файл, який містить усі компоненти. Зробимо це у верхній частині файлу.
jsimport "./index.css"; // Importing the CSS file
Крок 4
Нарешті, ми маємо свободу застосовувати будь-які стилі відповідно до наших уподобань.
css9912345678910111213141516171819202122232425262728293031323334/* Styling for the Container component */.container {margin: 0 auto;display: flex;flex-direction: column;align-items: center;padding: 20px;border: 3px solid #4f5e77;border-radius: 10px;width: 320px;background-color: #ff8a00;}/* Styling for the UserImage component */.image {display: block;max-width: 100%;height: auto;margin-bottom: 20px;}/* Styling for the UserInfo component text */.text {font-size: 22px;color: #bbdefb;}/* Styling for the UserInfo component label */.label {font-size: 28px;font-weight: 700;text-transform: uppercase;color: #4f5e77;}
Повний код програми:
Дякуємо за ваш відгук!
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат