diff --git a/components.d.ts b/components.d.ts index 992d489d1..f930e3b6e 100644 --- a/components.d.ts +++ b/components.d.ts @@ -58,6 +58,7 @@ declare module '@vue/runtime-core' { CrontabGenerator: typeof import('./src/tools/crontab-generator/crontab-generator.vue')['default'] CSelect: typeof import('./src/ui/c-select/c-select.vue')['default'] 'CSelect.demo': typeof import('./src/ui/c-select/c-select.demo.vue')['default'] + CssSelectorsMemo: typeof import('./src/tools/css-selectors-memo/css-selectors-memo.md')['default'] CssXpathConverter: typeof import('./src/tools/css-xpath-converter/css-xpath-converter.vue')['default'] CTable: typeof import('./src/ui/c-table/c-table.vue')['default'] 'CTable.demo': typeof import('./src/ui/c-table/c-table.demo.vue')['default'] @@ -189,6 +190,7 @@ declare module '@vue/runtime-core' { WifiQrCodeGenerator: typeof import('./src/tools/wifi-qr-code-generator/wifi-qr-code-generator.vue')['default'] XmlFormatter: typeof import('./src/tools/xml-formatter/xml-formatter.vue')['default'] XmlToJson: typeof import('./src/tools/xml-to-json/xml-to-json.vue')['default'] + XpathMemo: typeof import('./src/tools/xpath-memo/xpath-memo.md')['default'] YamlToJson: typeof import('./src/tools/yaml-to-json-converter/yaml-to-json.vue')['default'] YamlToToml: typeof import('./src/tools/yaml-to-toml/yaml-to-toml.vue')['default'] YamlViewer: typeof import('./src/tools/yaml-viewer/yaml-viewer.vue')['default'] diff --git a/src/tools/css-selectors-memo/css-selectors-memo.md b/src/tools/css-selectors-memo/css-selectors-memo.md new file mode 100644 index 000000000..18a4ab2ab --- /dev/null +++ b/src/tools/css-selectors-memo/css-selectors-memo.md @@ -0,0 +1,63 @@ +| Selector | Example | Example description | +|-----------------------|-------------------------|----------------------------------------------------------------------------------------------------------| +| `.class` | `.intro` | Selects all elements with class="intro" | +| `.class1.class2` | `.name1.name2` | Selects all elements with both name1 and name2 set within its class attribute | +| `.class1 .class2` | `.name1 .name2` | Selects all elements with name2 that is a descendant of an element with name1 | +| `#id` | `#firstname` | Selects the element with id="firstname" | +| `*` | `*` | Selects all elements | +| `element` | `p` | Selects all \
elements | +| `element.class` | `p.intro` | Selects all \
elements with class="intro" | +| `element,element` | `div, p` | Selects all \
elements | +| `element element` | `div p` | Selects all \
elements inside \
elements where the parent is a \
element that is placed immediately after \
element |
+| `[attribute]` | `[target]` | Selects all elements with a target attribute |
+| `[attribute=value]` | `[target="_blank"]` | Selects all elements with target="_blank" |
+| `[attribute~=value]` | `[title~="flower"]` | Selects all elements with a title attribute containing the word "flower" |
+| `[attribute\|=value]` | `[lang\|="en"]` | Selects all elements with a lang attribute value equal to "en" or starting with "en-" |
+| `[attribute^=value]` | `a[href^="https"]` | Selects every \ element whose href attribute value begins with "https" |
+| `[attribute$=value]` | `a[href$=".pdf"]` | Selects every \ element whose href attribute value ends with ".pdf" |
+| `[attribute*=value]` | `a[href*="w3schools"]` | Selects every \ element whose href attribute value contains the substring "w3schools" |
+| `:active` | `a:active` | Selects the active link |
+| `::after` | `p::after` | Insert something after the content of each \ element |
+| `::before` | `p::before` | Insert something before the content of each \ element |
+| `:checked` | `input:checked` | Selects every checked \ element |
+| `:default` | `input:default` | Selects the default \ element |
+| `:disabled` | `input:disabled` | Selects every disabled \ element |
+| `:empty` | `p:empty` | Selects every \ element that has no children (including text nodes) |
+| `:enabled` | `input:enabled` | Selects every enabled \ element |
+| `:first-child` | `p:first-child` | Selects every \ element that is the first child of its parent |
+| `::first-letter` | `p::first-letter` | Selects the first letter of every \ element |
+| `::first-line` | `p::first-line` | Selects the first line of every \ element |
+| `:first-of-type` | `p:first-of-type` | Selects every \ element that is the first \ element of its parent |
+| `:focus` | `input:focus` | Selects the input element which has focus |
+| `:fullscreen` | `:fullscreen` | Selects the element that is in full-screen mode |
+| `:has()` | `h2:has(+p)` | Selects h2 elements that are immediately followed by a p element, and applies the style to h2 |
+| `:hover` | `a:hover` | Selects links on mouse over |
+| `:in-range` | `input:in-range` | Selects input elements with a value within a specified range |
+| `:indeterminate` | `input:indeterminate` | Selects input elements that are in an indeterminate state |
+| `:invalid` | `input:invalid` | Selects all input elements with an invalid value |
+| `:lang()` | `p:lang(it)` | Selects every \ element with a lang attribute equal to "it" (Italian) |
+| `:last-child` | `p:last-child` | Selects every \ element that is the last child of its parent |
+| `:last-of-type` | `p:last-of-type` | Selects every \ element that is the last \ element of its parent |
+| `:link` | `a:link` | Selects all unvisited links |
+| `::marker` | `::marker` | Selects the markers of list items |
+| `:not()` | `:not(p)` | Selects every element that is not a \ element |
+| `:nth-child()` | `p:nth-child(2)` | Selects every \ element that is the second child of its parent |
+| `:nth-last-child()` | `p:nth-last-child(2)` | Selects every \ element that is the second child of its parent, counting from the last child |
+| `:nth-last-of-type()` | `p:nth-last-of-type(2)` | Selects every \ element that is the second \ element of its parent, counting from the last child |
+| `:nth-of-type()` | `p:nth-of-type(2)` | Selects every \ element that is the second \ element of its parent |
+| `:only-of-type` | `p:only-of-type` | Selects every \ element that is the only \ element of its parent |
+| `:only-child` | `p:only-child` | Selects every \ element that is the only child of its parent |
+| `:optional` | `input:optional` | Selects input elements with no "required" attribute |
+| `:out-of-range` | `input:out-of-range` | Selects input elements with a value outside a specified range |
+| `::placeholder` | `input::placeholder` | Selects input elements with the "placeholder" attribute specified |
+| `:read-only` | `input:read-only` | Selects input elements with the "readonly" attribute specified |
+| `:read-write` | `input:read-write` | Selects input elements with the "readonly" attribute NOT specified |
+| `:required` | `input:required` | Selects input elements with the "required" attribute specified |
+| `:root` | `:root` | Selects the document's root element |
+| `::selection` | `::selection` | Selects the portion of an element that is selected by a user |
+| `:target` | `#news:target` | Selects the current active #news element (clicked on a URL containing that anchor name) |
+| `:valid` | `input:valid` | Selects all input elements with a valid value |
+| `:visited` | `a:visited` | Selects all visited links |
\ No newline at end of file
diff --git a/src/tools/css-selectors-memo/css-selectors-memo.vue b/src/tools/css-selectors-memo/css-selectors-memo.vue
new file mode 100644
index 000000000..8f32f2782
--- /dev/null
+++ b/src/tools/css-selectors-memo/css-selectors-memo.vue
@@ -0,0 +1,32 @@
+
+
+
+