Реагирующий компонент внутри другого компонента

#reactjs

#reactjs

Вопрос:

Я новичок в react и создаю небольшую форму входа в систему. Я применил некоторый глобальный стиль в своем App.css

 @font-face {
  font-family: 'MyFont';
  src: local('MyFont'), url(./fonts/raleway.ttf) format('woff');
}

body, html { 
  font-family: 'MyFont'
}
 

Это мой App.js

 import logo from './logo.svg';
import Navbar from "./components/Navbar/Navbar"
import Login from "./components/Login/Login"

import './App.css';

function App() {
  return (
    <div className="App">
      <Navbar/>
      <Login/>
    </div>
  );
}

export default App;
 

Затем у меня есть Login components ( src/components/Login/Login.js ), где я импортирую компонент Button.

 import React, { Component } from "react";
import './Login.css'
import Button from "../Button/Button"


class Login extends Component {
  render() {
    return (
      <div className="section">
        <form>
          <h3>Log in</h3>

          [...]

          <div className="form-group">
            <div className="custom-control custom-checkbox">
              <input
                type="checkbox"
                className="custom-control-input"
                id="customCheck1"
              />
            </div>
          </div>
          <Button type="submit"/>
        </form>
      </div>
    );
  }
}
 

И это мой Button компонент ( src/components/Button/Button.js )

 import React, { Component } from "react";
import './Button.css'


class Button extends Component {
    render() {
      return (
        <button>Login</button>
      );
    }
  }
  
  export default Button;
 

Элемент button не использует стиль из App.js , унаследованный стиль переопределяется чем-то другим, как вы можете видеть на картинке. Как я могу это исправить?
введите описание изображения здесь

button.css

 button {
    background-color: #4CAF50; /* Green */
    border: none;
    color: white;
    padding: 15px 32px;
    text-align: center;
    display: inline-block;
    font-size: 16px;
  }
 

login.css

 .section{
    background-color: pink;
    max-width: 400px;
    margin: auto;
}

.section form {
    padding: 10px;
    justify-content: center;
    text-align: center;
}

form input{
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    resize: vertical;
    font-size: 15px;
  }

.form-group{
    margin: 1.5rem 0;
}
 

вычисляемая вкладка
введите описание изображения здесь
введите описание изображения здесь

Комментарии:

1. итак, нажмите на вкладку «Вычислено» в вашей dev-консоли и найдите эти перезаписанные стили. Там вы видите, какой другой стиль перезаписывает его (это только подсказка, как вы можете определить, какой стиль перезаписывает другой). Для остальной части вашего запроса нам нужны реальные файлы, которые здесь используются … означает, что насчет login.css, button.css …?

2. Я обновил свой пост с помощью правильного css

3. как насчет вывода консоли разработчика для «Вычисленного»? Кстати: ваш button.css написан заглавной буквой или строчными буквами?

4. Я только что добавил вкладку «вычисленные» в свой пост (конец) спасибо!

5. Теперь работает с «*», потрясающе! Остальное работало нормально

Ответ №1:

Чтобы установить шрифт для всей страницы, вам лучше использовать * { font-family: Myfont; } Make sure, MyFont доступен и загружен.

Комментарии:

1. Дополнительный совет — бьюсь об заклад, вы также хотите использовать сброс CSS (normalize.css), чтобы убедиться, что браузер не применяет некоторые нежелательные стили поверх ваших компонентов.