UNPKG

jsincss-element-query

Version:
211 lines (182 loc) 8.26 kB
<!DOCTYPE html> <meta charset=utf-8> <meta name=viewport content="width=device-width, initial-scale=1"> <link href=https://staticresource.com/data-buttons.css rel=stylesheet> <title>Element Query Test</title> <style> body style { display: block; width: 100%; padding: 1em; margin: 1em 0 2em 0; border-radius: 3px; font-size: 12pt; font-family: monospace; word-break: break-word; white-space: pre-wrap; font-kerning: auto; color: rgba(0,0,0,.7); background: transparent; border: 1px solid rgba(0,0,0,.3); } * { box-sizing: border-box; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-kerning: auto; } body { margin: 1em; font-family: sans-serif; } [data-button] { display: block; margin: 1em 0; } div { display: inline-block; border-radius: .2em; padding: 1.5em; color: #555; font-size: 12pt; line-height: 1.4; background: #eee; border: 1px solid #ccc; } input, textarea { display: block; min-width: 250px; border-radius: .2em; margin: 1em; padding: .5em; color: #555; font-size: 12pt; background: white; border: 1px solid #ccc; } section { height: 300px; display: inline-block; border: 1px dotted black; padding: 1em; } img { max-width: 50px; box-shadow: rgba(0,0,0,.1) 0 .2em .5em; } img + img { margin-left: 1em; } p { font-size: 10pt; color: #555; } [class*=-scroll-x] { overflow-x: scroll; } [class*=-scroll-x] p { width: 200%; } [class*=-scroll-y] { height: 100px; overflow-y: scroll; } [data-drag] { overflow: auto; } [data-drag=horizontal] { resize: horizontal; } [data-drag=vertical] { resize: vertical; } [data-drag=both] { resize: both; } </style> <h1>Element Query Test</h1> <h2>Width Queries</h2> <h3>min-width</h3> <div class=minwidth data-drag=horizontal>class="minwidth"</div> <h3>max-width</h3> <div class=maxwidth data-drag=horizontal>class="maxwidth"</div> <h2>Height Queries</h2> <h3>min-height</h3> <div class=minheight data-drag=vertical>class="minheight"</div> <h3>max-height</h3> <div class=maxheight data-drag=vertical>class="maxheight"</div> <h2>Quantity Queries</h2> <h3>min-characters on block elements</h3> <p>(Use keyboard)</p> <div class=mincharacters contenteditable>class="mincharacters"</div> <h3>min-characters on form inputs</h3> <p>(Use keyboard)</p> <input type=text class=mincharacters-input value='class="mincharacters-input"'> <textarea class=mincharacters-textarea>class="mincharacters-textarea"</textarea> <h3>characters on block elements</h3> <p>(Use keyboard)</p> <div class=characters contenteditable>class="characters"</div> <h3>characters on form inputs</h3> <p>(Use keyboard)</p> <input type=text class=characters-input value='class="characters-input"'> <textarea class=characters-textarea>class="characters-textarea"</textarea> <h3>max-characters on block elements</h3> <p>(Use keyboard)</p> <div class=maxcharacters contenteditable>class="maxcharacters"</div> <h3>max-characters on form inputs</h3> <p>(Use keyboard)</p> <input type=text class=maxcharacters-input value='class="maxcharacters-input"'> <textarea class=maxcharacters-textarea>class="maxcharacters-textarea"</textarea> <h3>min-children</h3> <button data-button=semiflat onclick="var img=document.createElement('img');img.src='https://staticresource.s3.amazonaws.com/user.png';document.querySelector('.minchildren').appendChild(img)">Add Child</button> <div class=minchildren> <img src=https://staticresource.s3.amazonaws.com/user.png style=width:50px> </div> <h3>children</h3> <button data-button=semiflat onclick="var img=document.createElement('img');img.src='https://staticresource.s3.amazonaws.com/user.png';document.querySelector('.children').appendChild(img)">Add Child</button> <div class=children> <img src=https://staticresource.s3.amazonaws.com/user.png style=width:50px> </div> <h3>max-children</h3> <button data-button=semiflat onclick="var img=document.createElement('img');img.src='https://staticresource.s3.amazonaws.com/user.png';document.querySelector('.maxchildren').appendChild(img)">Add Child</button> <div class=maxchildren> <img src=https://staticresource.s3.amazonaws.com/user.png style=width:50px> </div> <h2>Scroll queries</h2> <h3>min-scroll-y</h3> <div class=min-scroll-y> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </div> <h3>max-scroll-y</h3> <div class=max-scroll-y> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </div> <h3>min-scroll-x</h3> <div class=min-scroll-x> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </div> <h3>max-scroll-x</h3> <div class=max-scroll-x> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </div> <h2>Aspect queries</h2> <h3>orientation</h3> <div class=orientation style="width: 100px; height: 100px;">100 &times; 100</div> <div class=orientation style="width: 100px; height: 200px;">100 &times; 200</div> <div class=orientation style="width: 200px; height: 100px;">200 &times; 100</div> <h3>min-aspect-ratio</h3> <div class=minaspectratio data-drag=both>class="minaspectratio"</div> <h3>max-aspect-ratio</h3> <div class=maxaspectratio data-drag=both>class="maxaspectratio"</div> <script type=module> import jsincss from 'https://unpkg.com/jsincss/index.vanilla.js' import stylesheet from './element-query.js' import scrollStyles from './element-query-scroll.js' jsincss(stylesheet, window, ['load', 'resize', 'input', 'click', 'mouseup']) jsincss(scrollStyles, window, ['load']) jsincss(scrollStyles, '[class*="-scroll-"]', ['scroll']) </script>