Openingsuren met puur html/css

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan R

Jan R

03/05/2020 09:14:39
Quote Anchor link
Hi,

ik zou zoiets willen maken met puur html en css. Iemand een idee hoe dit kan.
Afbeelding
via google vind ik bibliotheken en ing maar niets wat help :)

De foto is gemaakt met php imagecreate
De data komt uit een array
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$uren
[1]    = array(array('start'=> 9, 'einde'=>12),   array('start'=>13.5, 'einde'=>18),   array('start'=>20, 'einde'=>24));
$uren[2]    = array();
$uren[3]    = array(array('start'=>11, 'einde'=>13.5), array('start'=>15, 'einde'=>20.5));
$uren[4]    = array(array('start'=> 7, 'einde'=>12),   array('start'=>14, 'einde'=>18));
$uren[5]    = array(array('start'=> 6, 'einde'=>12),   array('start'=>14, 'einde'=>19.334));
$uren[6]    = array(array('start'=> 5, 'einde'=>12),   array('start'=>14, 'einde'=>18));
$uren[7]    = array(array('start'=> 8, 'einde'=>12),   array('start'=>14, 'einde'=>18));
?>

Jan
 
PHP hulp

PHP hulp

25/04/2024 19:09:31
 
- Ariën  -
Beheerder

- Ariën -

03/05/2020 10:06:28
Quote Anchor link
Is het niet een idee om eerst een statische mockup-up te maken in HTML en CSS?

Vanuit daar kan je dit dan dynamisch maken met PHP.
 
Rob Doemaarwat

Rob Doemaarwat

03/05/2020 10:57:23
Quote Anchor link
Een div met position: relative per dag, voor de volledige 24 uur. In die div kun je dan absolute de "open" blokken gaan positioneren (100%/24 = 4,16666% = 1 uur, dus weer vermenigvuldigen met je tijd in uren).
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  <style>
    div.day{
      position: relative;
      font-size: 0; /* om geen last te hebben van de white-space tussen de div.hour's */
    }
    div.hour{
      display: inline-block;
      box-sizing: border-box;
      width: 4.16666666%;
      height: 24px;
      border-left: 2px solid lime;
      padding-left: 3px;
      font-size: 16px;
    }
    div.open{
      position: absolute;
      top: 2px;
      bottom: 2px;
      background: red;
    }
  </style>
  <div class="day">
    <div class="hour">0</div>
    <div class="hour">1</div>
    <div class="hour">2</div>
    <div class="hour">3</div>
    <div class="hour">4</div>
    <div class="hour">5</div>
    <div class="hour">6</div>
    <div class="hour">7</div>
    <div class="hour">8</div>
    <div class="hour">9</div>
    <div class="hour">10</div>
    <div class="hour">11</div>
    <div class="hour">12</div>
    <div class="hour">13</div>
    <div class="hour">14</div>
    <div class="hour">15</div>
    <div class="hour">16</div>
    <div class="hour">17</div>
    <div class="hour">18</div>
    <div class="hour">19</div>
    <div class="hour">20</div>
    <div class="hour">21</div>
    <div class="hour">22</div>
    <div class="hour">23</div>
    <div class="open" style="left: 35.416666667%; width: 14.58345%"></div>div>
    <div class="open" style="left: 54.1671%; width: 20.8335%"></div>
  </div>
 
Thomas van den Heuvel

Thomas van den Heuvel

03/05/2020 12:38:17
Quote Anchor link
Wie gaat dit gebruiken? Een grafiek is dan misschien leuk, maar als ik wil weten wat de openingstijden van een winkel zijn heb ik liever een concrete lijst met tijden dan een grafische/abstracte voorstelling hiervan.

Een gebruiker zou niet hoeven te puzzelen om te achterhalen wanneer een filiaal geopend is, dit moet direct duidelijk zijn.

Je zou ook kunnen nadenken over een andere indeling, met een nauwkeurigheid van een half uur ofzo. 19.334 is bijvoorbeeld wel èrg specifiek.
 
Jan R

Jan R

03/05/2020 14:00:32
Quote Anchor link
19.3334 = 19u20. Dat was uitsluitend als een testje. De weergave is zowel tekst als grafisch. Misschien is mktime beter.

Werken met blokjes had ik ook al in gedachte maar ik zag nog niet echt hoe. Die 14% is zeker een goed idee.

Jan
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.