Intro
I showed some elements center with flexbox.
And I wanted to make scrollable when a text what was in an element was long.
Environments
- PostCSS ver.7.0.32
- Autoprefixer ver.9.8.0
Samples
package.json
{
"scripts": {
"css": "npx postcss src/pcss/*.css -c postcss.config.js -d dist/css -w"
},
"browserslist": [
"last 2 versions"
],
"dependencies": {
"autoprefixer": "^9.8.0",
"postcss": "^7.0.32",
"postcss-cli": "^7.1.1",
"postcss-import": "^12.0.1",
"precss": "^4.0.0"
}
}
postcss.config.js
module.exports = {
plugins: [
require('autoprefixer')({
"grid": true,
}),
require('precss')
]
}
main.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello</title>
<meta charset="utf-8"/>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="outside">
<div class="cell">
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
</div>
<div class="cell">
ABC
</div>
</div>
</body>
</html>
style.css
#outside {
border: solid 1px #000;
display: flex;
flex-direction: row;
justify-content: space-between;
height: 20vh;
width: 20vw;
}
.cell {
border: solid 1px #000;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
width: 40%;
/* IE, Firefox (Chrome) */
word-break: break-all;
overflow-x: hidden;
overflow-y: auto;
}
Problem
I couldn't scroll to top.
Although some suggested "margin: auto", "align-items: safe center", and so on, the problem wasn't resolved.
When I could scroll to top on left side item, I couldn't center the right side item.
Resolve
I divided the elements into center items and scroll texts.
main.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello</title>
<meta charset="utf-8"/>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="outside">
<div class="cell">
<div class="cell_text">
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
</div>
</div>
<div class="cell">
<div class="cell_text">
ABC
</div>
</div>
</div>
</body>
</html>
style.css
...
.cell {
border: solid 1px #000;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
width: 40%;
}
.cell_text {
display: inline-block;
height: auto;
max-width: 100%;
/* IE, Firefox (Chrome) */
word-break: break-all;
overflow-y: auto;
overflow-x: hidden;
}
Now I could scroll to top.
コメント
コメントを投稿