Я пытаюсь воссоздать https://mdbootstrap.com/previews/free-templates/react-admin-dashboard/ панель мониторинга с дополнительной страницей входа в систему.
Страница входа выглядит очень хорошо, однако, когда я перехожу на вышеупомянутую панель мониторинга, основное содержимое всегда идет подsideNavBar, а также весь контент больше, чем он должен выглядеть.
Я считаю, что это проблема с CSS, однако я не могу понять это.
Прикрепление изображения длясравнение со ссылкой.
Я использую разные макеты для разных ссылок в моем App.js:
const AppRoute = ({ component: Component, layout: Layout, ...rest }) => (
<Route
{...rest}
render={props => (
<Layout>
<Component {...props} />
</Layout>
)}
/>
);
function App() {
return (
<Router>
<Switch>
<AppRoute exact path='/' layout={LoginLayout} component={Login} />
<AppRoute
exact
path='/register'
layout={LoginLayout}
component={Register}
/>
<AppRoute
exact
path='/dashboard'
layout={DashboardLayout}
component={DashboardPage}
/>
</Switch>
</Router>
);
}
DashboardLayout.js:
function **DashboardLayout**({ children }) {
return (
<div>
<SideNavigation />
<TopNavigation />
{children}
<Footer />
</div>
);
}
Одна из страниц, переданных как children в приведенном выше коде:
const DashboardPage = () => {
return (
<React.Fragment>
<BreadcrumSection />
...
и BreadcrumSection.js:
<MDBCard
className='mb-4'
>
<MDBCardBody
id='breadcrumb'
className='d-flex align-items-center justify-content-between'
>
<MDBBreadcrumb>
<MDBBreadcrumbItem>Home</MDBBreadcrumbItem>
<MDBBreadcrumbItem active>Dashboard</MDBBreadcrumbItem>
</MDBBreadcrumb>
<MDBFormInline className='md-form m-0'>
<input
className='form-control form-control-sm'
type='search'
placeholder='Type your query'
aria-label='Search'
/>
<MDBBtn size='sm' color='primary' className='my-0' type='submit'>
<MDBIcon icon='search' />
</MDBBtn>
</MDBFormInline>
</MDBCardBody>
</MDBCard>
Наконец, index.css для приложения имеет вид:
#classicformpage .view {
background-image: url("http://mdbootstrap.com/img/Photos/Others/images/91.jpg");
background-repeat: no-repeat;
background-size: cover;
background-position: center center;
height: 100vh;
}
#classicformpage .gradient {
background: -webkit-linear-gradient(
45deg,
rgba(0, 0, 0, 0.7),
rgba(72, 15, 144, 0.4) 100%
);
background: -webkit-gradient(
linear,
45deg,
from(rgba(0, 0, 0, 0.7), rgba(72, 15, 144, 0.4) 100%)
);
background: linear-gradient(
45deg,
rgba(0, 0, 0, 0.7),
rgba(72, 15, 144, 0.4) 100%
);
}
#classicformpage .card {
background-color: rgba(126, 123, 215, 0.2);
}
#classicformpage h6 {
line-height: 1.7;
}
#classicformpage .navbar {
transition: background 0.5s ease-in-out, padding 0.5s ease-in-out;
}
#classicformpage .top-nav-collapse {
background: #424f95 !important;
}
@media (max-width: 768px) {
#classicformpage .navbar:not(.top-nav-collapse) {
background: #424f95 !important;
}
}
#classicformpage label {
color: #fff !important;
}
#apppage .gradient {
background: -moz-linear-gradient(
45deg,
rgba(42, 27, 161, 0.7),
rgba(29, 210, 177, 0.7) 100%
);
background: -webkit-linear-gradient(
45deg,
rgba(42, 27, 161, 0.7),
rgba(29, 210, 177, 0.7) 100%
);
background: -webkit-gradient(
linear,
45deg,
from(rgba(42, 27, 161, 0.7)),
to(rgba(29, 210, 177, 0.7))
);
background: -o-linear-gradient(
45deg,
rgba(42, 27, 161, 0.7),
rgba(29, 210, 177, 0.7) 100%
);
background: linear-gradient(
45deg,
rgba(42, 27, 161, 0.7),
rgba(29, 210, 177, 0.7) 100%
);
}
#apppage .view {
background-image: url("https://mdbootstrap.com/img/Photos/Others/architecture.jpg");
background-repeat: no-repeat;
background-size: cover;
background-position: center center;
min-height: 100vh;
}
#apppage h6 {
line-height: 1.7;
}
@media only screen and (max-width: 400px) {
#apppage .animated img {
max-height: 50vh;
transform: translateX(-50%);
left: 50%;
position: absolute;
}
}
@media only screen and (max-width: 767px) {
#apppage .animated img {
max-height: 35vh;
transform: translateX(-50%);
left: 50%;
}
}
@media (max-width: 767px) and (orientation: landscape) {
#apppage .animated img {
max-height: 50vh;
transform: translateX(-50%);
left: 50%;
position: relative;
}
}
@media (max-width: 1000px) and (orientation: landscape) {
#apppage .view {
min-height: 150vh;
}
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
"Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
"Segoe UI Symbol";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #ededee;
}
a {
color: inherit;
}
.list-group-flush {
color: #495057;
}
.active {
background-color: #e9ecef !;
}
main {
background-color: #ededee;
}
.navbar-brand {
margin-left: 15px;
color: #2196f3 !important;
}
.sidebar-fixed {
left: 0;
top: 0;
height: 100vh;
width: 270px;
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
z-index: 1050;
background-color: #fff;
padding: 1.5rem;
padding-top: 0;
}
/* .flexible-navbar {
transition: padding-left 0.5s;
padding-left: 270px;
background: #fff;
} */
#content {
margin-left: 270px;
}
.sidebar-fixed .logo-wrapper img {
width: 100%;
padding: 2.5rem;
}
.list-group-item {
display: block !important;
transition: background-color 0.3s;
}
.list-group-item:hover {
color: #49505b;
text-decoration: none;
background-color: #f8f9fa;
}
.list-group-item:hover {
color: #49505b;
text-decoration: none;
background-color: #f8f9fa;
}
.list-group .active {
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
border-radius: 5px;
}
.card-title {
font-size: 1.5rem;
font-weight: 600;
}
.card-subtitle {
font-size: 1.25rem;
font-weight: 600;
}
.full {
height: 70vh;
}
.bad-gateway-row {
margin: 0;
position: absolute;
top: 50%;
left: 55%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.card .view.gradient-card-header {
padding: 1rem 1rem;
text-align: center;
}
.card h3,
.card.card-cascade h4 {
margin-bottom: 0px;
}
.cascading-admin-card .admin-up {
margin-left: 4%;
margin-right: 4%;
margin-top: -20px;
}
.cascading-admin-card .admin-up .fa {
box-shadow: 0 2px 9px 0 rgba(0, 0, 0, 0.2), 0 2px 13px 0 rgba(0, 0, 0, 0.19);
}
.cascading-admin-card .admin-up .fa {
padding: 1.7rem;
font-size: 2rem;
color: #fff;
text-align: left;
margin-right: 1rem;
border-radius: 3px;
}
.cascading-admin-card .admin-up .data {
float: right;
margin-top: 2rem;
text-align: right;
}
.admin-up .data p {
color: #999999;
font-size: 12px;
}
.classic-admin-card .card-body {
color: #fff;
margin-bottom: 0;
padding: 0.9rem;
}
.classic-admin-card .card-body p {
font-size: 13px;
opacity: 0.7;
margin-bottom: 0;
}
.classic-admin-card .card-body h4 {
margin-top: 10px;
}
.form-inline {
flex-flow: unset;
}
.breadcrumb {
margin: 0;
}
.activeClass .list-group-item {
z-index: 5;
color: #fff;
border-color: #007bff;
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
border-radius: 5px !important;
background-color: #007bff !important;
}
.page-footer {
margin-left: 270px;
}
@media (max-width: 1199.98px) {
.sidebar-fixed {
display: none;
}
.flexible-content {
padding-left: 0;
}
.flexible-navbar {
transition: padding-left 0.5s;
padding-left: 270px;
background: #fff;
}
#content {
margin-left: 0px;
}
.page-footer {
margin-left: 0px;
}
.card.cascading-admin-card {
margin-top: 2.5rem;
}
}
@media (max-width: 576px) {
.card.cascading-admin-card {
margin-top: 2.5rem;
}
#breadcrumb {
flex-direction: column;
}
}