Tablet Layout
W tym krótkim artykule pokażę wam jak zrobić prosty Layout Tabletu z użyciem Bootstrapa CSS'a i odrobiny Java Script oraz JQuery, podgląd tego co będziemy robić możecie zobaczyć tutaj.
Przygotujmy sobie najperw przedpole, zacznijmy więc od pobrania paczki MDBBootstrap z ze strony MDB albo z tąd. Po rozpakowaniu i otworzeniu jej w edytorze, będziemy zajmować się dwoma plikami
index.html
css/style.css
Drugim krokiem będzie otwarcie pliku index.html
i usunięcie z inego całego kodu znajdującego
się pomiędzy komenatarzami Start your project here
Trzecim naszym ruchem będzie utworzenie conteineru dla naszego tabletu
<!-- Start your project here-->
<div style="container mt-5">
</div>
<!-- End your project here-->
Przyszedł czas na stworzenie samego tabletu będzie on składał się z 4 części: obudowy, ekranu, przycisku i
mikrofonu. Zacznijmy więc od stworzenia obudowy z ekranem. Stwórzmy dwa divy
w sobie o klasach
"tablet" "screen"
<div style="container mt-5">
<div class="tablet">
<div class="screen">
</div>
</div>
</div>
Czas nadać temu jakieś kształty dlatego w CSS-ie przypiszemy im takie wartości
.tablet {
position: relative;
width: 1024px;
height: 568px;
margin: auto;
border: 16px #000 solid;
border-left-width: 60px;
border-right-width: 60px;
border-radius: 36px;
top:-25px;
}
.screen{
position: relative;
text-align: center;
width:906px;
height: 538px;
background-color: #fff;
background-image: url();
background-repeat: no-repeat;
background-size: cover;
}
postion:relative
odpowiada za możliwość przesunięcia elementu w dowolnym kierunku względem
jego domyślego położenia i nadaje możliwość przesuwania innych elementów względem jego
width height
szerokosć wysokość
margin
margines
border:
właściwości obramowania
top
odległość od górnej krawędzi
text-algin:center
wyśrodkowanie tekstu
background-color/image/repeat/size
kolor, obrazek, powtarzanie się i wielkość tła
Jako tapetę możecie wybrać dowolną rzecz ja wybrałem tę tapetę
Kolejnym krokoiem będzie stworzenie przycisku start i mikrofonu, stworzymy to poprzez używania atrybutu :before i :after
.tablet:after {
content: '';
display: block;
width: 40px;
height: 40px;
position: absolute;
left: -3.5%;
top: 50%;
transform: translate(-50%, -50%);
background: rgb(141, 140, 140);
border-radius: 50%;
}
.tablet:before {
content: ' ';
display: block;
width: 10px;
height: 10px;
position: absolute;
top: 50%;
right: -4.3%;
transform: translate(-50%, -50%);
background: rgb(141, 140, 140);
border-radius: 50%;
}
content
ustala zawartość, gdyż przy braku jej element nie zostanie wyświetlony (w tym
wypadku)
display: block
element zostanie wyświetlony w bloku
position: absolute
element zosataje dostosowany do innego elementu z klasą
position:relative
transform: translate
Odpowiada za przesunięcie w pionie i poziomie
Tym sposobem otrzymaliśmy tablet
Chyba czas połączyć się do wifi i sprawdzić czy jest naładowany nieprawdaż? Dlatego utwórzmy na górze biały pasek z ikoną wifi, godziną i wskaźnikiem baterii. Zrobimy to poprzez używanie siatki Bootstrapowej, w następujący sposób:
<div class="row text-white">
<div class="col-4">
<div class="wifi">
</div>
</div>
<div class="col-4">
<div>
</div>
</div>
<div class="col-4">
<div class="battery">
</div>
</div>
</div>
Udało nam się własnie stworzyć rząd w którym znajują się równe 3 kolumny, stało się tka gdyż siatka
Bootstrapowa dzieli dany element 12 równych kolumn, a my zadekralowaliśmy, iż chcemy mieć 3 kolumny na 4
szerokości (col-4)
w rzędzie (row)
z klasą dla wifi po lewej oraz dla baterii po
prawej, teraz umieśćmy je już na właściwych miejscach, jako grafiki wifi i bateri skorzystamy z ikon, do
<div class="row text-white">
<div class="col-4">
<div class="wifi">
<p>Tablet <i class="fas fa-wifi"></i></p>
</div>
</div>
<div class="col-4">
<p id="hour">12:00 am</p>
<div>
</div>
</div>
<div class="col-4">
<div class="battery">
<p>100% <i class="fas fa-battery-full"></i></p>
</div>
</div>
</div>
Jak mogliscie zauważyć wsmyknąłem tam, także id="hour"
przy zegarze będzie ono nam potrzebne
na sam koniec aby zrobić małą aczkolwiek fajną rzezcz ;P.
Skoro mamy już wifi na tablecie to wypadało by chyba zainstalować parę aplikacji, no niestety tutaj nie ma drogi na skróty ale spokojnie trudno nie będzie, zacznijmy od stworzenia jednego kafelka aplikacji wraz z jego nazwą pod nim. Stwórzmy więc go!
<div class="col-2">
<div class="app">
<i class="fas fa-3x fa-wrench center-icon"></i>
</div>
<div class="app-text">Settings</div>
</div>
Bez ustawien ani rusz ,ale zanim zaczną one poprawnie działać trzeba je "ustawić" dlatego dodaliśmy klasę center-icon aby wyśrodkować ikonę w pionie, a także klasę app i app-text żeby jakoś porządnie to wyglądało, a tak zacznie wyglądać po tym jak ustalimy pewne granice, a zrobimy to poprzez ustalenie ich w CSS-ie
.app{
width:80px;
height:80px;
border-radius: 25px;
}
.app-text{
color:#fff;
position: relative;
margin-right: 30px;
}
.center-icon{
margin-top:16px;
}
Wygląda dobrze tylko trochę ponuro dlatego możemy zmienić jej kolor tła poprzez dodanie Bootstrapowej klasy
do elementu z klasą app
, listę kolorów znajdziecie tutaj, jednocześnie możemy
dodać do nich efekt podświetlenia po najechaniu i kliknięcia, poprzez te dwie klasy
hoverable waves-effect
, natomiast listę różnych innych ikon znajdziecie tu, pamiętajcie jednak
też o tym, że domyśle ikony są dużo mniejsze i aby zmienić ich rozmiar na taki jak powyżej, należy dodać do
nich klasę fa-3x
. Skoro to już mamy ustalone możemy działać dalej czas przygotować pole dla
tych ikon, a zrobimy to w następujący sposób:
Zaczniemy od stworzenia klasy .apps-area oraz app-row
.apps-area{
position: relative;
margin-left:50px;
margin-right: 50px;
}
.app-row{
margin-bottom: 20px;
}
Gdy mamy już stworzone odpowiednie klasy czas stworzyć resztę całej siatki, będzie się ona składać z 3 rzędów po 6 aplikacji oraz 1 rzędzu paska szybkiego wyboru
<div class="apps-area">
<div class="row app-row">
</div>
<div class="row app-row">
</div>
<div class="row app-row">
</div>
<div class="row app-row justify-content-center">
</div>
</div>
justify-content-center
wyśrodkowywuje zawartość siatkiTeraz wystarczy już tylko przekopiować nasze ikony wraz z całym divem z klasą col-2
pare razy
do jednej z trzech lini i 3/4 razy do paska szybkiego wyboru i po chwili lekkiej edycji powinniśmy otrzymać
zbliony efekt
Na sam koniec zostały nam 2 dropbne rzeczy. Dodamy efekt zmiany kursora po najechaniu na dany kafelek oraz
zrobimy coś z id hour
, zacznijmy od efektu wystarczy dodać atrybut :hover
do klasy
ikonki i zadeklarować zmianę kursora na inny
.app:hover{
cursor: pointer;
}
A co do tajemniczego ID to potrzebne ono jest ono nam aby nasz zegar poprawnie funkcjonował, poniżej
zamieszczam krótki kod który należy wkleić na samym dole między znacznikami script
z podpisem
Your Custom Script
$(function() {
startTime();
});
function startTime() {
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
m = checkTime(m);
document.getElementById('hour').innerHTML =
h + ":" + m;
var t = setTimeout(startTime, 500);
}
function checkTime(i) {
if (i < 10) {i = "0" + i};
return i;
}
Po przekopiowaniu jej w odpowiednie miejsce możesz zobaczyć ze zegar wyświetla już nie 12:00 a twoją godzinę! Małe ale cieszy prawda?
I tą troszeczkę skomplikowaną funkcjią z zainicjalizowaniem w JQuerry udało ci się zrobić prosty Layout Tabletu GRATULACJIE!