summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
yu.dongliang [Wed, 3 Jun 2026 14:43:08 +0000 (22:43 +0800)]
save length of const C string of html tag name
yu.dongliang [Wed, 3 Jun 2026 08:21:47 +0000 (16:21 +0800)]
css: selectors priority: #id > .class > [attr] > :pse_class > ::pse_element > combinator > tag,
1, the last selector is 'key' selector, the highest priority selector is 'priority' selector.
2, the higher priority is, the later selector runs.
if priority same, then check the type of 'key' selector: tag runs first, PSE class / attr / class / ID runs later one by one,
so 'p .class {}' has higher priority, as it run later than '.class p {}'.
--------------------------------------------------------------------------
I don't want to calculate the priority of combinators with the numbers of ID, class, attr, PSE class, tag, etc.
Even if the browser kernel code can do it, but the CSS programer could NOT do it fast when write the CSS code,
so we only see the 'key' selector (the last right) & the highest selector, it is easy!
as this, it is NOT useful to write a long '.class list' to improve the priority, maybe no one remember these .classes later.
--------------------------------------------------------------------------
for PSE class > PSE element, because PSE class is usually used for an action, PSE element used for an position in HTML.
of course PSE element is static & PSE class is dynamic, so if a combinator has or has not an PSE in 'key' selector,
the nature order is: normal selector < PSE element < PSE class, like below:
.class:hover {} > .class::first-child {} > .class {},
Even if a new .class2 added to the 3rd like .class2 .class {}, .class:hover {} will run latest also,
make sure the 'mouse move event' has the highest priority.
yu.dongliang [Mon, 1 Jun 2026 12:07:58 +0000 (20:07 +0800)]
1, css: support dynamic use,
2, support opacity for simple image
yu.dongliang [Fri, 29 May 2026 11:07:10 +0000 (19:07 +0800)]
1, css: support 'display & visibility',
2, support variable OpenGL resolution with a scale factor as OS vision config,
yu.dongliang [Wed, 27 May 2026 09:42:54 +0000 (17:42 +0800)]
css: simple attribute selector ok, draw HTML <hr> ok
yu.dongliang [Mon, 25 May 2026 13:44:41 +0000 (21:44 +0800)]
tmp
yu.dongliang [Mon, 25 May 2026 13:42:51 +0000 (21:42 +0800)]
css: support 'position sticky, fixed, absolute, relative, static'
yu.dongliang [Sat, 23 May 2026 14:46:48 +0000 (22:46 +0800)]
1, add triangle buttons in the two end of scrollbar,
2, support 'top, right, bottom, left' of margin, padding, border
yu.dongliang [Wed, 20 May 2026 16:37:00 +0000 (00:37 +0800)]
use abc_attr_t to save HTML attrs, abc_obj_t only save HTML objects, so can decrease memory use
yu.dongliang [Tue, 19 May 2026 11:19:22 +0000 (19:19 +0800)]
css: support a simple scroll-bar with 'scrollbar-width' & 'scrollbar-color' as CSS asked
yu.dongliang [Sat, 16 May 2026 11:14:58 +0000 (19:14 +0800)]
html: use an array to save label's attrs, now get it O(1),
css : support complex pse class (element) chain for HTML object.
yu.dongliang [Wed, 13 May 2026 11:03:59 +0000 (19:03 +0800)]
fix: float exception
yu.dongliang [Wed, 13 May 2026 10:58:36 +0000 (18:58 +0800)]
css: support simple combinators with pse class or pse element
yu.dongliang [Sun, 3 May 2026 09:27:05 +0000 (17:27 +0800)]
delete some un-used files
yu.dongliang [Sun, 3 May 2026 08:17:02 +0000 (16:17 +0800)]
1, split render code to 3 files: __render_border.c, __render_bg_image.c, __render_text.c,
2, use GL_BLEND to show background-image when draw text,
3, scf: add scf_utf8_len() to get a UTF-8 char & its bytes,
4, css: support Chinese Char (中文) in border,
5, css: use macro ABC_CSS_BOX() to add HTML labels' attrs for css box model,
ABC_CSS_SELECTOR() for css selector,
ABC_CSS_BACK_GROUND() for back-ground attrs,
ABC_CSS_FONT() for font attrs,
ABC_CSS_TEXT() for text align, etc.
6, and render the margin of HTML objects transparent / clearing.
yu.dongliang [Fri, 1 May 2026 07:01:38 +0000 (15:01 +0800)]
draw border of <p>, <table>, maybe other HTML objects
yu.dongliang [Thu, 30 Apr 2026 08:57:37 +0000 (16:57 +0800)]
html/css: auto split a long UTF-8 text to next line, Chinese (中文) ok
yu.dongliang [Mon, 27 Apr 2026 10:53:38 +0000 (18:53 +0800)]
css: text-align & vertical-align ok for <table>, <th>, <td>
yu.dongliang [Sat, 25 Apr 2026 10:39:41 +0000 (18:39 +0800)]
css: border, margin, padding of <table>
yu.dongliang [Tue, 21 Apr 2026 10:44:28 +0000 (18:44 +0800)]
html: support <table>, <tr>, <th>, <td>
yu.dongliang [Sun, 19 Apr 2026 05:56:36 +0000 (13:56 +0800)]
html/css: support css for <ol>, <ul>, <li>
yu.dongliang [Fri, 17 Apr 2026 15:38:52 +0000 (23:38 +0800)]
html: add <ol>, <ul>, <li> for list
yu.dongliang [Tue, 14 Apr 2026 12:46:24 +0000 (20:46 +0800)]
css: support 140 colors all
yu.dongliang [Mon, 13 Apr 2026 17:42:38 +0000 (01:42 +0800)]
html/css: use caseless __html_strcmp() instead of strcmp()
yu.dongliang [Sun, 12 Apr 2026 09:15:59 +0000 (17:15 +0800)]
css: text-decoration, such as 'underline, overline, line-through, none'
yu.dongliang [Fri, 10 Apr 2026 13:04:03 +0000 (21:04 +0800)]
css: background-image with repeat status
yu.dongliang [Tue, 7 Apr 2026 10:10:55 +0000 (18:10 +0800)]
css: support 'background-color' & 'background-image'
yu.dongliang [Tue, 31 Mar 2026 15:58:07 +0000 (23:58 +0800)]
css: use css code in a file with HTML <link> label
yu.dongliang [Sun, 22 Mar 2026 16:38:07 +0000 (00:38 +0800)]
css: support css selector by ID or class, such as '#id {}' or 'p.red {}'
yu.dongliang [Sun, 15 Mar 2026 10:43:47 +0000 (18:43 +0800)]
css: parse css color like: red, #ff8000, rgb(0, 0, 255)
yu.dongliang [Fri, 13 Mar 2026 06:13:18 +0000 (14:13 +0800)]
css: text-align
yu.dongliang [Wed, 4 Mar 2026 15:13:26 +0000 (23:13 +0800)]
css: a simple css example ok
yu.dongliang [Tue, 3 Mar 2026 08:48:08 +0000 (16:48 +0800)]
css: add a simple css parser
yu.dongliang [Sun, 11 Jan 2026 15:28:07 +0000 (23:28 +0800)]
scf: update native/x64
yu.dongliang [Fri, 2 Jan 2026 11:03:37 +0000 (19:03 +0800)]
README.md
yu.dongliang [Fri, 2 Jan 2026 10:40:00 +0000 (18:40 +0800)]
README.md
yu.dongliang [Sat, 13 Dec 2025 08:11:40 +0000 (16:11 +0800)]
1, js: support 'switch-case',
2, scf: mov source code of _semantic_find_proper_function2() to scf_ast_find_proper_function().
yu.dongliang [Wed, 10 Dec 2025 04:22:12 +0000 (12:22 +0800)]
js: support 'for..in..'
yu.dongliang [Sun, 16 Nov 2025 04:35:41 +0000 (12:35 +0800)]
1, js : support 'for() loop' with array[] & ++, --,
2, scf: support ++, -- for float & double in native/x64.
yu.dongliang [Tue, 11 Nov 2025 11:57:52 +0000 (19:57 +0800)]
js: support simple 'for() loop'
yu.dongliang [Wed, 5 Nov 2025 06:39:21 +0000 (14:39 +0800)]
js: fix 'teq' for 'js object' which is a return value of an function call(),
for source code as 'if (obj)', 'if (!obj)', or 'if (Boolean(0))', etc.
yu.dongliang [Thu, 30 Oct 2025 07:42:48 +0000 (15:42 +0800)]
js: add bool type, add if-else
yu.dongliang [Mon, 27 Oct 2025 13:45:02 +0000 (21:45 +0800)]
js: support RegExpr such as 'var p = /L/gi;'
yu.dongliang [Fri, 24 Oct 2025 04:29:25 +0000 (12:29 +0800)]
js: support PCRE2 for RegExpr match(), scf: fix some bugs
yu.dongliang [Sat, 11 Oct 2025 08:44:24 +0000 (16:44 +0800)]
js: re-name key word 'create' to 'new', support Math.PI & Math.sqrt()
yu.dongliang [Thu, 9 Oct 2025 12:42:00 +0000 (20:42 +0800)]
js: Boolean(), Date(), other js construct() written by user
yu.dongliang [Thu, 25 Sep 2025 13:47:39 +0000 (21:47 +0800)]
js: support variable args of js function() with 'arguments[]' array
yu.dongliang [Sat, 23 Aug 2025 16:17:59 +0000 (00:17 +0800)]
js: use function object to call()
yu.dongliang [Fri, 22 Aug 2025 09:11:39 +0000 (17:11 +0800)]
js: anonymous function & var init ok
yu.dongliang [Tue, 19 Aug 2025 08:17:30 +0000 (16:17 +0800)]
js: simple member function ok
yu.dongliang [Wed, 13 Aug 2025 08:49:50 +0000 (16:49 +0800)]
js: object with array init ok
yu.dongliang [Wed, 13 Aug 2025 05:15:46 +0000 (13:15 +0800)]
js: simple Object Model ok
yu.dongliang [Fri, 1 Aug 2025 13:43:16 +0000 (21:43 +0800)]
js: support simple js with 'scf' compiler
yu.dongliang [Wed, 9 Jul 2025 15:48:16 +0000 (23:48 +0800)]
update README.md
yu.dongliang [Wed, 9 Jul 2025 15:35:08 +0000 (23:35 +0800)]
support HTML label <video> & <audio>, update to ffmpeg-7.1.1
yu.dongliang [Tue, 19 Nov 2024 04:05:15 +0000 (12:05 +0800)]
http post with a simple HTML <form> content ok
yu.dongliang [Wed, 6 Nov 2024 15:02:23 +0000 (23:02 +0800)]
simple http download ok by nginx upstream proxy
yu.dongliang [Sat, 2 Nov 2024 13:09:06 +0000 (21:09 +0800)]
add a simpile HTTP support for AF_UNIX
yu.dongliang [Mon, 21 Oct 2024 08:04:23 +0000 (16:04 +0800)]
support to write web page in Chinese, 支持中文编写网页
yu.dongliang [Sun, 20 Oct 2024 13:23:14 +0000 (21:23 +0800)]
support HTML <form>, <input> for text / password / submit
yu.dongliang [Sun, 22 Sep 2024 14:44:18 +0000 (22:44 +0800)]
support HTML <p> and <br>, <br/>, <br />
yu.dongliang [Fri, 20 Sep 2024 12:07:20 +0000 (20:07 +0800)]
support HTML <img src=.. />
yu.dongliang [Thu, 19 Sep 2024 04:57:10 +0000 (12:57 +0800)]
1st commit for ABC (advanced browser core)