Bonjour à tous,
Dans le cadre d'un projet, je suis amené à développer une interface Web avec la mise en page suivante :
Cette mise en page a quelques exigences :
- L'interface doit occuper l'entièreté de l'écran sans avoir de barre de défilement globale (horizontale et verticale);
- La zone bleue (id: input) doit faire 800 px de largeur tandis que la zone jaune (id: image) doit prendre le reste de la largeur de l'écran;
- La zone orange (id: zoom) doit occuper 60% de l'écran et la zone rouge (id: text) doit prendre les 40% qui restent.
L'image ci-dessus représente ce à quoi je suis arrivé et respecte ces trois exigences.
Là où cela se complique pour moi se situe dans la zone bleue où je suis censé disposer différents labels à des zones définies (ex: left: 10px; top: 15px; par rapport au coin supérieur gauche de la zone bleue). Lorsque des coordonnées d'un label (ex: "Label 5" se situent hors de la zone bleue, celle-ci s'en trouve agrandie verticalement (mais elle "passe" en-dessous des zones orange et rouge) comme vous pouvez le voir sur l'image ci-dessous :
De quelle façon pourrais-je avoir une barre de défilement verticale uniquement pour la zone bleue afin qu'il n'y ait aucun chevauchement avec d'autres zones et que je puisse voir "Label 5" ?
La seconde et dernière complication dans cette interface est que la zone jaune (id: image) est censée contenir une image. Comment puis-je faire en sorte que cette image n'agrandisse pas horizontalement la zone jaune ? Comme vous pouvez le voir sur l'image suivante, lorsque j'insère une image dans cette zone, celle-ci s'agrandit automatiquement pour afficher l'entièreté de la largeur de l'image. Comment redimensionner l'image pour qu'elle occupe 100% de la largeur de la zone jaune sans qu'il n'y ait de barre de défilement horizontale (la verticale peut éventuellement être nécessaire dans certains cas) ? J'ai tenté d'appliquer la propriété max-width à 100% sur l'image mais elle n'est pas prise en compte, sans doute par le caractère aléatoire de la largeur de la zone jaune.
Ci-dessous la définition du fichier HTML (Sample.html) :
Et ci-dessous, la définition du fichier CSS qui lui est associé (StylesheetSample.css) :
Et voici l'image utilisée dans ce projet de test au cas où cela pourrait être utile :
Auriez-vous des pistes pour m'aider à résoudre ces problèmes ?
Un grand merci d'avance,
Opec78.
Modifié par Opec78 (15 Jul 2014 - 08:26)
Dans le cadre d'un projet, je suis amené à développer une interface Web avec la mise en page suivante :
Cette mise en page a quelques exigences :
- L'interface doit occuper l'entièreté de l'écran sans avoir de barre de défilement globale (horizontale et verticale);
- La zone bleue (id: input) doit faire 800 px de largeur tandis que la zone jaune (id: image) doit prendre le reste de la largeur de l'écran;
- La zone orange (id: zoom) doit occuper 60% de l'écran et la zone rouge (id: text) doit prendre les 40% qui restent.
L'image ci-dessus représente ce à quoi je suis arrivé et respecte ces trois exigences.
Là où cela se complique pour moi se situe dans la zone bleue où je suis censé disposer différents labels à des zones définies (ex: left: 10px; top: 15px; par rapport au coin supérieur gauche de la zone bleue). Lorsque des coordonnées d'un label (ex: "Label 5" se situent hors de la zone bleue, celle-ci s'en trouve agrandie verticalement (mais elle "passe" en-dessous des zones orange et rouge) comme vous pouvez le voir sur l'image ci-dessous :
De quelle façon pourrais-je avoir une barre de défilement verticale uniquement pour la zone bleue afin qu'il n'y ait aucun chevauchement avec d'autres zones et que je puisse voir "Label 5" ?
La seconde et dernière complication dans cette interface est que la zone jaune (id: image) est censée contenir une image. Comment puis-je faire en sorte que cette image n'agrandisse pas horizontalement la zone jaune ? Comme vous pouvez le voir sur l'image suivante, lorsque j'insère une image dans cette zone, celle-ci s'agrandit automatiquement pour afficher l'entièreté de la largeur de l'image. Comment redimensionner l'image pour qu'elle occupe 100% de la largeur de la zone jaune sans qu'il n'y ait de barre de défilement horizontale (la verticale peut éventuellement être nécessaire dans certains cas) ? J'ai tenté d'appliquer la propriété max-width à 100% sur l'image mais elle n'est pas prise en compte, sans doute par le caractère aléatoire de la largeur de la zone jaune.
Ci-dessous la définition du fichier HTML (Sample.html) :
<!DOCTYPE html>
<html>
<head>
<title>Sample</title>
<link rel="stylesheet" href="Styles/StylesheetSample.css" />
</head>
<body>
<div id="container">
<div id="menu">
</div>
<div id="main">
<div id="image">
<!--img src="Images/CCITT_1-1.png" /-->
</div>
<div id="input">
<span style="top: 10px; left: 15px;">Label 1</span>
<span style="top: 10px; left: 300px;">Label 2</span>
<span style="top: 32px; left: 300px;">Label 3</span>
<span style="top: 65px; left: 15px;">Label 4</span>
<span style="top: 700px; left: 15px;">Label 5</span>
</div>
</div>
<div id="summary">
<div id="zoom">
</div>
<div id="text">
</div>
</div>
<div id="footer">
</div>
</div>
</body>
</html>
Et ci-dessous, la définition du fichier CSS qui lui est associé (StylesheetSample.css) :
html, body {
height: 99%;
font-family: Arial, Helvetica, sans-serif;
}
#container {
width: 100%;
height: 100%;
border: solid 1px black;
}
#menu {
height: 5%;
background-color: black;
}
#main {
width: 100%;
height: 65%;
display: table;
}
#summary {
height: 25%;
}
#footer {
height: 5%;
background-color: green;
}
#image, #input, #zoom, #text {
height: 100%;
}
#zoom, #text {
float: left;
}
#image {
width: auto;
display: table-cell;
background-color: yellow;
}
#input {
width: 800px;
display: table-cell;
position: relative;
background-color: Blue;
}
#input span {
position: absolute;
}
#zoom {
width: 60%;
background-color: Orange;
}
#text {
width: 40%;
background-color: Red;
}
Et voici l'image utilisée dans ce projet de test au cas où cela pourrait être utile :
Auriez-vous des pistes pour m'aider à résoudre ces problèmes ?
Un grand merci d'avance,
Opec78.
Modifié par Opec78 (15 Jul 2014 - 08:26)